编一C程序,实现将输入的一个无符号整数转换为二进制和八进制表示,分别存入字符数组中并输出
时间: 2023-06-26 09:06:58 浏览: 273
```
#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 位字符。
阅读全文
相关推荐











