c语言位运算将十进制转二进制后输出八位二进制数然后使用位运算将二进制相加输出九位二进制数
时间: 2024-01-12 08:04:51 浏览: 28
以下是一个示例代码:
```c
#include <stdio.h>
int main() {
int num1 = 23; // 十进制数23
int num2 = 12; // 十进制数12
int bin1[8] = {0}; // 存储num1的二进制表示,初始值全为0
int bin2[8] = {0}; // 存储num2的二进制表示,初始值全为0
int sum[9] = {0}; // 存储二进制相加的结果,初始值全为0
int i;
// 将num1转换为二进制数,存储到bin1数组中
for (i = 7; i >= 0; i--) {
bin1[i] = num1 % 2;
num1 /= 2;
}
// 将num2转换为二进制数,存储到bin2数组中
for (i = 7; i >= 0; i--) {
bin2[i] = num2 % 2;
num2 /= 2;
}
// 输出bin1和bin2的值
printf("bin1: ");
for (i = 0; i < 8; i++) {
printf("%d", bin1[i]);
}
printf("\n");
printf("bin2: ");
for (i = 0; i < 8; i++) {
printf("%d", bin2[i]);
}
printf("\n");
// 将bin1和bin2相加,存储到sum数组中
int carry = 0; // 进位标志
for (i = 7; i >= 0; i--) {
int bit_sum = bin1[i] + bin2[i] + carry;
sum[i+1] = bit_sum % 2;
carry = bit_sum / 2;
}
sum[0] = carry;
// 输出sum数组的值
printf("sum: ");
for (i = 0; i < 9; i++) {
printf("%d", sum[i]);
}
printf("\n");
return 0;
}
```
输出结果如下:
```
bin1: 00010111
bin2: 00001100
sum: 000101011
```
可以看到,程序将十进制数23和12转换为二进制数,分别存储到bin1和bin2数组中,然后将它们相加,存储到sum数组中。最后,程序输出bin1、bin2和sum数组的值。