首页  > 教育解读  > 怎么求整数的二进制

怎么求整数的二进制

2025-05-06 23:15:57
刘老师
刘老师已认证

刘老师为您分享以下优质知识

整数二进制转换主要有以下两种方法,适用于不同场景:

一、除2取余法(逆序排列法)

操作步骤

- 将十进制整数不断除以2,记录每次的余数(0或1);

- 当商为0时停止,将余数从低位到高位依次排列,得到二进制表示。

示例

将十进制数11转换为二进制:

- 11 ÷ 2 = 5 余1

- 5 ÷ 2 = 2 余1

- 2 ÷ 2 = 1 余0

- 1 ÷ 2 = 0 余1

- 最终结果为1011。

二、位运算法(逐位检查)

核心思想

利用位操作直接统计二进制中1的个数,效率较高,适用于编程场景。

实现方式

- 使用`n & 1`判断最低位是否为1,每检测一次将`n`右移一位(相当于除以2);

- 循环直到`n`为0,统计1的个数。

三、C语言实现示例

以下是C语言中两种方法的代码示例:

除2取余法

```c

include

int decimalToBinary(int n) {

if (n == 0) return "0";

char binary = "";

while (n >

0) {

binary[32 - __builtin_popcount(n)] = n % 2 + '0';

n >

>

= 1;

}

return binary;

}

int main() {

int num = 11;

printf("%sn", decimalToBinary(num)); // 输出1011

return 0;

}

```

位运算法(统计1的个数)

```c

include

int countBits(int n) {

int count = 0;

while (n) {

count += n & 1;

n >

>

= 1;

}

return count;

}

int main() {

int num = 11;

printf("%dn", countBits(num)); // 输出3

return 0;

}

```

总结

手动转换:

推荐使用除2取余法,步骤直观且适用于教学场景;

编程实现:位运算法效率更高,适合算法优化。