#include <stdio.h>
#include <ctype.h>
int main ()
{
__int64 x,y;
while (scanf("%I64X%I64X",&x,&y)+1)
{
printf("%I64X\n",x+y);
}
return 0;
}
这个没有错。
十六进制表示负数通常用的是补码的方式表示.
正数的补是它本身.
负数的补码是它本身的值每位求反,最后再加一.
所以屏幕看到的结果是:该数绝对值的补码,再加1
加一条10进制结果输处指令可验证:
示例代码如下,
#include <stdio.h>示例输出结果如下:
供参考。