用C语言,用长整型输入一个十进制数,用程序将其变换成2进制数和8进制数。
时间: 2024-12-04 07:29:31 浏览: 16
在C语言中,你可以使用`stdio.h`库中的`scanf()`函数读取用户输入的十进制数,然后通过循环和位操作将其转换成二进制和八进制。以下是简单的示例代码:
```c
#include <stdio.h>
#include <math.h>
// 将十进制转换为二进制字符串
void decimalToBinary(long long num) {
char binary[33]; // 预备足够大的数组存储32位整数的二进制表示
int i = 0;
while (num > 0) {
binary[i++] = num % 2 + '0'; // 加上'0'是因为'0'代表二进制的0,'1'代表1
num /= 2; // 右移一位
}
binary[i] = '\0'; // 结束字符串
printf("二进制数: %s\n", binary);
}
// 将十进制转换为八进制字符串
void decimalToOctal(long long num) {
char octal[11]; // 预备足够大的数组存储10位整数的八进制表示
printf("八进制数: ");
while (num != 0) {
octal[i++] = num % 8 + '0';
num /= 8;
}
octal[i] = '\0';
printf("%s\n", octal); // 输出八进制数并换行
}
int main() {
long long dec_num;
printf("请输入一个十进制数: ");
scanf("%lld", &dec_num);
decimalToBinary(dec_num);
decimalToOctal(dec_num);
return 0;
}
```
当你运行这个程序时,它会提示用户输入一个十进制数,然后分别输出其对应的二进制和八进制形式。
阅读全文