
郭老师为您分享以下优质知识
在C语言中,将数字转换为二进制可以通过以下方法实现,具体分为十进制转二进制和二进制输入转十进制两种情况:
一、十进制转二进制
位操作法
使用循环和位操作符(如右移 `>
>
`、取余 `%`)逐位提取二进制位,从低位到高位存储并输出。 ```c
include
void printBinary(int num) {
int bit;
while (num >
0) {
bit = num % 2;
printf("%d", bit);
num = num / 2;
}
printf("");
}
int main() {
int num = 10;
printf("二进制表示为: ");
printBinary(num);
return 0;
}
```
除2取余法
通过不断除以2并记录余数,最后将余数逆序输出。 ```c
include
int main() {
int n, i;
printf("请输入一个十进制整数: ");
scanf("%d", &n);
int a = {0};
for (i = 0; n >
0; i++) {
a[i] = n % 2;
n = n / 2;
}
printf("十进制整数转换为二进制数是: ");
for (i = 31; i >
= 0; i--) {
printf("%d", a[i]);
}
return 0;
}
```
二、二进制输入转十进制
字符数组解析
读取二进制字符串,逐位转换为十进制并累加。 ```c
include
int main() {
char str;
printf("请输入32位二进制数: ");
scanf("%s", str);
int n = 0;
for (int i = 0; i < 8; i++) {
if (str[i] == '1') n += 1