java中int转二进制
时间: 2023-09-02 09:11:56 浏览: 97
可以使用Integer.toBinaryString()方法将int类型的整数转换为二进制字符串,例如:
```java
int num = 10;
String binaryStr = Integer.toBinaryString(num);
System.out.println(binaryStr); // 输出:1010
```
也可以使用位运算符将int类型的整数转换为二进制,例如:
```java
int num = 10;
String binaryStr = "";
for (int i = 31; i >= 0; i--) {
binaryStr += (num >> i) & 1;
}
System.out.println(binaryStr); // 输出:00000000000000000000000000001010
```
这里使用了一个for循环,从高位到低位依次取出num的二进制位,将其转换为字符拼接到字符串中。其中,右移运算符>>将num向右移动i位,&运算符取出num在第i位的二进制位,最终得到一个0或1的数值,用于拼接字符串。需要注意的是,这里使用了字符串拼接操作,可能会影响性能,应尽量避免在循环中频繁进行字符串拼接。
相关问题
java字符串转二进制_Java字符串与二进制的相互转换
Java中可以使用以下方法将字符串转换成二进制:
```java
public static String stringToBinary(String str) {
byte[] bytes = str.getBytes();
StringBuilder binary = new StringBuilder();
for (byte b : bytes) {
int val = b;
for (int i = 0; i < 8; i++) {
binary.append((val & 128) == 0 ? 0 : 1);
val <<= 1;
}
}
return binary.toString();
}
```
该方法将字符串转换成字节数组,然后遍历字节数组的每个字节,并将每个字节转换成二进制数,最后将所有二进制数拼接成一个字符串并返回。
如果要将二进制字符串转换成普通字符串,可以使用以下方法:
```java
public static String binaryToString(String binary) {
StringBuilder sb = new StringBuilder();
int len = binary.length();
for (int i = 0; i < len; i += 8) {
String s = binary.substring(i, Math.min(len, i + 8));
int n = Integer.parseInt(s, 2);
sb.append((char) n);
}
return sb.toString();
}
```
该方法将二进制字符串按照每8个字符一组进行分割,并将每组二进制数转换成对应的ASCII码,最后将所有ASCII码拼接成一个字符串并返回。
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);
}
}
}
```
阅读全文