题目:


最开始是打算把输入的十六进制的数字转换为十进制,再求和,后再把和转化为十六进制,太过于麻烦,其实C语言是可以直接进行十六进制的计算,只是不能直接输出负数(和补码,反码有关)需要自己进行一次转换,因为题目给出的A,B都是15位以内的16进制数,因为4个二进制位表示一个十六进制的数字,则A,B都需要定义为16位的整形(__int64可以实现定义位64的整形数字),其中表示和的变量也要定义为64位的整数。
AC的代码:
#include<stdio.h>
#include<math.h>
int main(void)
{
__int64 n1,n2;
while(~scanf("%I64X %I64X",&n1,&n2))
{
__int64 sum=n1+n2;
if(sum<0)
{
sum=-sum;
printf("-%I64X\n",sum);
}
else if(sum>=0)
{
printf("%I64X\n",sum);
}
}
return 0;
}
本文介绍了一种使用C语言进行十六进制加法的方法,避免了将十六进制转换为十进制的繁琐步骤。通过直接在十六进制下进行计算,然后输出结果,特别注意了负数和补码的处理。
321

被折叠的 条评论
为什么被折叠?



