
周老师为您分享以下优质知识
在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位),通过数组存储余数后逆序输出。
递归方法代码简洁,循环方法更直观,可根据需求选择。
以上方法均可处理正整数,若需处理负数或非整数,需额外处理符号位或使用其他进制转换库函数。