首页  > 教育解读  > c语言中十进制如何变成二进制

c语言中十进制如何变成二进制

2025-05-09 02:38:28
周老师
周老师已认证

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

在C语言中,将十进制数转换为二进制数主要有以下三种常见方法,均基于“除2取余”法:

一、使用位操作符和循环结构

通过位运算符逐位提取二进制位,并倒序输出。

```c

include

void printBinary(int num) {

int bit;

while (num >

0) {

bit = num % 2;

printf("%d", bit);

num = num / 2;

}

printf("n");

}

int main() {

int num = 10;

printf("The binary representation of %d is: ", num);

printBinary(num);

return 0;

}

```

二、使用递归函数

通过递归调用将余数逆序输出。

```c

include

void printBinaryRecursive(int num) {

if (num >

0) {

printBinaryRecursive(num / 2);

printf("%d", num % 2);

}

}

int main() {

int num = 10;

printf("The binary representation of %d is: ", num);

printBinaryRecursive(num);

return 0;

}

```

三、使用数组存储余数并倒序输出

通过循环将余数存入数组,最后逆序输出。

```c

include

void printBinaryArray(int num) {

int a = {0}, i, n = 0;

while (num >

0) {

a[n++] = num % 2;

num /= 2;

}

for (i = n - 1; i >

= 0; i--) {

printf("%d", a[i]);

}

printf("n");

}

int main() {

int num = 10;

printf("The binary representation of %d is: ", num);

printBinaryArray(num);

return 0;

}

```

说明

核心原理:

所有方法均采用“除2取余”法,将十进制数不断除以2,记录余数并倒序输出,形成二进制表示。

数组存储法:

适用于需要固定长度输出的场景(如32位),通过数组存储余数后逆序输出。

递归与循环:

递归方法代码简洁,循环方法更直观,可根据需求选择。

以上方法均可处理正整数,若需处理负数或非整数,需额外处理符号位或使用其他进制转换库函数。