在 Java 中,将 int 类型转换为二进制字符串表示,可以使用 Integer 类的静态方法 toBinaryString(),以下是几种常见的方法和示例:

(图片来源网络,侵删)
方法 1:使用 Integer.toBinaryString()
这是最直接的方法,返回 int 的二进制字符串表示(不带前缀 0b)。
int num = 10; String binaryStr = Integer.toBinaryString(num); System.out.println(binaryStr); // 输出: 1010
方法 2:补全指定位数(如 8 位、16 位、32 位)
如果需要固定长度的二进制字符串(例如补全前导零),可以使用 String.format() 或手动补零。
示例:补全到 8 位
int num = 10;
String binaryStr = String.format("%8s", Integer.toBinaryString(num)).replace(' ', '0');
System.out.println(binaryStr); // 输出: 00001010
示例:补全到 32 位(完整 int 长度)
int num = 10;
String binaryStr = String.format("%32s", Integer.toBinaryString(num)).replace(' ', '0');
System.out.println(binaryStr); // 输出: 00000000000000000000000000001010
方法 3:手动计算二进制位
如果需要逐位处理(例如自定义格式),可以通过位运算手动计算每一位的值。
int num = 10;
StringBuilder binaryStr = new StringBuilder();
for (int i = 31; i >= 0; i--) {
int bit = (num >> i) & 1;
binaryStr.append(bit);
}
System.out.println(binaryStr.toString()); // 输出: 00000000000000000000000000001010
方法 4:带前缀 0b 的二进制字符串
如果需要包含 0b 前缀(类似 Python 的风格),可以手动拼接:

(图片来源网络,侵删)
int num = 10; String binaryStr = "0b" + Integer.toBinaryString(num); System.out.println(binaryStr); // 输出: 0b1010
| 方法 | 示例代码 | 输出(num=10) |
说明 |
|---|---|---|---|
Integer.toBinaryString() |
Integer.toBinaryString(10) |
1010 |
标准二进制字符串 |
| 补全 8 位 | String.format("%8s", ...).replace(' ', '0') |
00001010 |
固定长度,补前导零 |
| 补全 32 位 | String.format("%32s", ...).replace(' ', '0') |
00000000000000000000000000001010 |
完整 int 长度 |
| 手动计算位 | 循环移位 + & 1 |
00000000000000000000000000001010 |
逐位处理 |
带 0b 前缀 |
"0b" + Integer.toBinaryString(10) |
0b1010 |
类似 Python 风格 |
根据需求选择合适的方法即可!
