用c语言写一个输入一个十六进制数a,和一个八进制数b,输出a+b的十进制结果的代码
时间: 2024-12-24 09:39:55 浏览: 6
在C语言中,你可以通过标准库函数来转换十六进制和八进制数为十进制,然后相加。以下是一个简单的例子:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h> // 需要用到atoi函数
int main() {
char hexInput[50], octalInput[50];
printf("请输入一个十六进制数(例如: 0x1A): ");
fgets(hexInput, sizeof(hexInput), stdin);
hexInput[strlen(hexInput) - 1] = '\0'; // 去掉末尾的换行符
printf("请输入一个八进制数(例如: 072): ");
fgets(octalInput, sizeof(octalInput), stdin);
octalInput[strlen(octalInput) - 1] = '\0';
int decimalHex = (int)strtol(hexInput + 2, NULL, 16); // 去掉 "0x",并转换为十进制
int decimalOctal = atoi(octalInput); // 转换八进制字符串为十进制
int sum = decimalHex + decimalOctal;
printf("两数之和的十进制表示为: %d\n", sum);
return 0;
}
```
在这个程序里,我们首先从用户那里获取十六进制和八进制的输入,然后分别将它们转换成十进制形式。注意`strtol`函数用于将字符串转换为长整型数值,需要指定第二个参数为NULL,第三个参数为基数(这里是16),`atoi`则直接将字符串转换为整型。
阅读全文