编一C程序,实现将输入的一个无符号整数转换为二进制和八进制表示,分别存入字符数组中并输出
时间: 2023-06-26 14:06:58 浏览: 193
C语言程序设计-编写程序。从键盘读入8个整数存入数组a中并输出这8个数据。和、最大值、最小值及平均值。正数之和、负数之和
5星 · 资源好评率100%
```
#include <stdio.h>
int main() {
unsigned int num;
char binary[33], octal[12];
int i, j;
printf("请输入一个无符号整数:");
scanf("%u", &num);
// 转换为二进制
for (i = 31; i >= 0; i--) {
binary[i] = (num & 1) + '0';
num >>= 1;
}
binary[32] = '\0';
// 转换为八进制
for (i = 10; i >= 0; i--) {
octal[i] = (num & 7) + '0';
num >>= 3;
}
octal[11] = '\0';
printf("二进制表示:%s\n", binary);
printf("八进制表示:%s\n", octal);
return 0;
}
```
注意,我们将二进制和八进制表示都存储在字符数组中,因此需要在数组末尾加上字符串结束符 `\0`。二进制表示需要使用 32 位字符数组,因为无符号整数最多有 32 位。八进制表示需要使用 11 位字符数组,因为八进制每三位对应一个字符,而无符号整数最多有 32 位,因此最多需要 11 位字符。
阅读全文