java 二进制补0
时间: 2023-08-08 22:08:02 浏览: 389
Java中的二进制补0可以使用String.format()方法实现。具体实现方式为,使用"%0n"作为格式化字符串,其中n表示需要显示的位数。例如,如果需要将整数i转换为8位的二进制字符串,可以使用以下代码:
```
String binaryString = String.format("%08d", Integer.parseInt(Integer.toBinaryString(i)));
```
其中,Integer.toBinaryString(i)将整数i转换为二进制字符串,Integer.parseInt()将二进制字符串转换为整数,然后使用"%08d"将整数转换为8位二进制字符串,前面补0。
相关问题
java 二进制补0,最高位补1
Java中的二进制补0使最高位补1也可以使用String.format()方法实现。具体实现方式为,使用"%n"作为格式化字符串,其中n表示需要显示的位数。这里需要将二进制字符串的最高位设为1,因此需要先将整数i与一个掩码做按位或运算,再将结果转换为二进制字符串。以下是实现代码:
```
int mask = Integer.parseInt("10000000", 2); // 定义掩码,最高位为1,其余位为0
String binaryString = String.format("%8s", Integer.toBinaryString(i | mask)).replace(' ', '0');
```
其中,"10000000"是一个二进制字符串,表示掩码,使用Integer.parseInt()将其转换为整数。接着,使用按位或运算将整数i的最高位设为1。然后,使用"%8s"将整数转换为8位二进制字符串,前面补空格。最后,使用.replace()方法将空格替换为0即可。
java 十进制转二进制
有多种方法可以在Java中将十进制数转换为二进制数。一种方法是使用Integer类的toString()方法,该方法接受两个参数:要转换的十进制数和基数。对于将十进制转换为二进制,我们可以将基数设置为2。下面是一个示例程序:
```java
import java.util.Scanner;
public class JavaD2B {
public static void main(String[] args) {
int number;
Scanner sc = new Scanner(System.in);
System.out.println("Enter a decimal number: ");
number = sc.nextInt();
System.out.println("Binary number is " + Integer.toString(number, 2));
}
}
```
另一种方法是使用Integer类的toBinaryString()方法,该方法直接将十进制数转换为二进制数。下面是一个示例程序:
```java
import java.util.Scanner;
public class JavaD2B {
public static void main(String[] args) {
int number;
Scanner sc = new Scanner(System.in);
System.out.println("Enter a decimal number: ");
number = sc.nextInt();
System.out.println("Binary number is " + Integer.toBinaryString(number));
}
}
```
如果你想了解更多关于十进制转二进制的方法,可以参考下面的示例程序。这个程序使用了辗转相除法来实现转换:
```java
import java.util.Scanner;
public class Number2Binary {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (true) {
System.out.print("Input a number: ");
int number = input.nextInt();
int number2;
// 如果是负数,需要加上2^31次方
if (number < 0) {
number2 = (int) (Math.pow(2, 31) + number);
} else {
number2 = number;
}
String binary = "";
// 通过辗转相除法,求出二进制数,保存在binary中
int shang = number2;
int yu;
int count = 0;
while (shang != 0) {
yu = shang % 2;
shang /= 2;
count++;
if (count % 4 == 0) {
binary = "_" + yu + binary;
} else {
binary = yu + binary;
}
}
// 不够32位,需要补齐
while (count < 31) {
count++;
if (count % 4 == 0) {
binary = "_" + 0 + binary;
} else {
binary = 0 + binary;
}
}
// 判断符号位
if (number < 0) {
binary = 1 + binary;
} else {
binary = 0 + binary;
}
System.out.println(binary);
}
}
}
```
阅读全文