首页  > 教育解读  > 怎么把十进制转换为二进制c语

怎么把十进制转换为二进制c语

2025-05-09 21:20:42
郭老师
郭老师已认证

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

在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 decimalToBinary(int decimalNum) {

int binaryArr = {0};

int i = 0;

while (decimalNum >

0) {

binaryArr[i] = decimalNum % 2;

decimalNum /= 2;

i++;

}

printf("二进制数为: ");

for (int j = i-1; j >

= 0; j--) {

printf("%d", binaryArr[j]);

}

printf("n");

}

int main() {

int decimalNum;

printf("请输入一个十进制数: ");

scanf("%d", &decimalNum);

decimalToBinary(decimalNum);

return 0;

}

```

说明

位操作符方法:

效率较高,适合处理整数。

递归方法:

代码简洁,但存在栈溢出风险(仅适用于较小数值)。

数组存储方法:

通用性强,可处理较大数值,但需注意数组大小限制。

以上方法均可实现十进制到二进制的转换,选择时可根据具体需求和场景决定。