为什么用printf("%I64X",a+b); 不能输出十六进制负数?求大神解答一下。
#include<iostream>
using namespace std;
int main(){
signed __int64 a,b;
while(scanf("%I64X%I64X",&a,&b)!=EOF){
if(a+b>=0)
printf("%I64X\n",a+b);
else
printf("-%I64X\n",-a-b);
}
return 0;
}
本文探讨了在C++中使用printf函数输出十六进制负数时遇到的问题,并提供了一种解决方法。通过判断a+b的正负值来决定是否在前面添加负号。
525

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



