
面试李组长为您分享以下优质知识
将十进制数 137转换为二进制数,可以使用以下两种方法:
一、手动除2取余法(逐步除以2记录余数)
- 137 ÷ 2 = 68 余 1
- 68 ÷ 2 = 34 余 0
- 34 ÷ 2 = 17 余 0
- 17 ÷ 2 = 8 余 1
- 8 ÷ 2 = 4 余 0
- 4 ÷ 2 = 2 余 0
- 2 ÷ 2 = 1 余 0
- 1 ÷ 2 = 0 余 1
将余数倒序排列得到 10001001。
二、位运算方法(使用左移和按位与操作)
- 初始化 `now` 为137,`e` 为0。
- 当 `now` 大于0时,执行以下操作:
- 将 `now` 左移1位(相当于乘以2)。
- 使用按位与操作 `now & n` 判断最低位是否为1,如果是则记录该位(1),否则记录0。
- 重复上述过程直到 `now` 为0。
代码示例(Python):
```python
n = 137
binary = ""
while n >
0:
if n & 1:
binary = "1" + binary
n = n >
>
1
print(binary) 输出: 10001001
```
结果:
通过位运算得到 10001001。
三、验证结果
手动计算:$137 = 2^7 + 2^3 + 2^0 = 128 + 8 + 1 = 10001001_2$
工具验证:使用Windows计算器(科学模式)输入 `137` 转换为二进制,结果为 10001001。
总结
十进制数 137的二进制表示为 10001001,两种转换方法均可得到一致结果。手动除2取余法适合理解原理,位运算方法则更高效且适用于编程实现。