整数转换为二进制可以通过多种方法实现,以下是常见的方法及示例:
一、使用编程语言内置函数
Java - `Integer.toBinaryString(int n)`:将整数转换为二进制字符串,例如 `Integer.toBinaryString(10)` 返回 `"1010"`。
- `Long.toBinaryString(long n)`:适用于长整型。
Python
- `bin(int n)`:返回带有前缀 `'0b'` 的二进制字符串,例如 `bin(10)` 返回 `'0b1010'`。
- `format(int n, 'b')`:返回不带前缀的字符串,例如 `format(10, 'b')` 返回 `'1010'`。
C语言
- `itoa(int n, char *str)`:将整数转换为字符串表示的二进制,例如 `itoa(10, b)` 将 `10` 转换为二进制字符串。
- `bitset<32>(n)`:使用标准库中的 `bitset` 类,例如 `bitset<32>(10)` 可直接输出二进制。
Python(进阶)
- `bin(n)[2:]`:切片操作去除前缀 `'0b'`,例如 `bin(10)[2:]` 返回 `'1010'`。
二、手动转换方法
除2取余法(整数部分)
通过不断除以2并记录余数,将余数逆序排列。例如将25转换为二进制:
```
25 / 2 = 12 余1
12 / 2 = 6 余0
6 / 2 = 3 余0
3 / 2 = 1 余1
1 / 2 = 0 余1
结果:11001
```
位运算法
使用位运算符(如 `&`、`>>`)逐位提取二进制位。例如:
```c
void printBinary(int n) {
for (int i = 31; i >= 0; i--) {
printf("%d", (n >> i) & 1);
}
printf("n");
}
```
三、注意事项
负数处理: 上述方法仅适用于非负整数。负数需采用补码表示,转换前需先确定位数(如8位、32位)。 小数转换
通过以上方法,可根据具体需求选择编程语言内置函数或手动实现转换。