
郭老师为您分享以下优质知识
整数转换为二进制位数的方法主要有以下两种常见方式:
一、除2取余法(逆序排列法)
- 将十进制整数除以2,记录余数;
- 将商继续除以2,再记录余数;
- 重复上述过程,直到商为0;
- 将所有余数从低位到高位逆序排列,即为二进制表示。
示例
将十进制数137转换为二进制:
```
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(二进制)。
二、位操作法(适用于固定位数)
逐位提取法
- 使用位操作符(如`n & 1`提取最低位,`n >
>
1`右移一位)逐位提取二进制位;
- 将提取的位存储在数组或向量中,最后逆序输出。
示例代码(C语言)
```c
include
include
std::vector toBinary(int n) {
std::vector binary;
for (int i = 31; i >
= 0; --i) {
binary.push_back((n >
>
i) & 1);
}
return binary;
}
int main() {
int num = 137;
std::vector binary = toBinary(num);
for (int bit : binary) {
std::cout