
起步向前走为您分享以下优质知识
在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}, len = 0;
while (num >
0) {
a[len++] = num % 2;
num = num / 2;
}
for (int i = len - 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;
}
```
补充说明
输入范围:上述示例中,数组大小固定为16,适用于0-32767之间的十进制数。若需处理更大数值,可动态分配内存或使用位运算优化。
输出格式:部分代码在每4位后添加空格,便于阅读(如二进制数11011显示为`1010`)。
以上方法均可实现十进制到二进制的转换,选择时可根据具体需求(如代码简洁性、可读性、效率)进行权衡。