c语言怎么将十进制转为二进制

一、背景知识

在计算机中,二进制是计算机中最基本的进制方式。而在编程中,常常需要将十进制转换为二进制,以方便计算。在C语言中,可以通过几种不同的方式将十进制转换为二进制。

二、使用循环实现十进制转二进制

1. 实现思路

将十进制数不断除以2,直到商为0,将每次除以2所得的余数倒序排列得到的结果就是该十进制数的二进制表示。例如转换十进制数9为二进制:

9 / 2 = 4 ... 1

4 / 2 = 2 ... 0

2 / 2 = 1 ... 0

1 / 2 = 0 ... 1

倒序排列得到的就是二进制数1001。

2. 代码实现

#include <stdio.h>

void decimal_to_binary(int decimal)

{

int binary[32];

int i = 0;

while (decimal > 0) {

binary[i] = decimal % 2;

decimal /= 2;

i++;

}

for (int j = i - 1; j >= 0; j--) {

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

}

}

int main()

{

int decimal = 9;

decimal_to_binary(decimal);

return 0;

}

以上代码演示了将十进制数9转换为二进制的过程。

三、使用递归实现十进制转二进制

1. 实现思路

使用递归函数,递归地将十进制数除以2,直到商为0,然后从底层开始递归回来,将递归返回的余数拼接起来得到二进制数。例如转换十进制数9为二进制:

9 / 2 = 4 ... 1

4 / 2 = 2 ... 0

2 / 2 = 1 ... 0

1 / 2 = 0 ... 1

从递归返回的头开始逐步拼接得到的就是二进制数1001。

2. 代码实现

#include <stdio.h>

void decimal_to_binary(int decimal)

{

if (decimal > 0) {

decimal_to_binary(decimal / 2);

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

}

}

int main()

{

int decimal = 9;

decimal_to_binary(decimal);

return 0;

}

以上代码演示了使用递归函数将十进制数9转换为二进制的过程。

四、使用位运算实现十进制转二进制

1. 实现思路

使用位运算,将十进制数每一位上的数都转换为二进制表示,最后将每一位的结果拼接起来得到二进制数。例如转换十进制数9为二进制:

9 & 1 = 1

4 & 1 = 0

2 & 1 = 0

1 & 1 = 1

将每一位的结果拼接得到的就是二进制数1001。

2. 代码实现

#include <stdio.h>

void decimal_to_binary(int decimal)

{

int binary[32];

int i = 0;

while (decimal > 0) {

binary[i] = decimal & 1;

decimal >>= 1;

i++;

}

for (int j = i - 1; j >= 0; j--) {

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

}

}

int main()

{

int decimal = 9;

decimal_to_binary(decimal);

return 0;

}

以上代码演示了使用位运算将十进制数9转换为二进制的过程。

五、总结

将十进制数转换为二进制数是编程中常用的基础操作。使用循环、递归、位运算等不同的方法实现该操作,可以根据需要选择最适合的方法,并在实际应用中进行优化。

后端开发标签