我要添加两个字符串。字符串是十六进制值。我将字符串转换为long long,添加并返回到string之后。但是这个操作没有用。
代码:
13285923899203179534
+ 8063907133566997305
= 2903086959060625223
我收到了
std::stringstream Stream;
Stream << std::hex << Num;
return Stream.str();
任何人都可以解释这个魔法吗?我该如何解决?
按
返回十六进制值var text = "!john david sue !jay";
答案 0 :(得分:2)
对于某些k,C(和C ++)中的所有无符号算术都以模2 k 出现。在你的情况下,你得到模2 64 的结果,这意味着你的平台上无符号长long是64位。
如果要对平台上大于最大支持类型的整数进行算术运算,则需要使用多精度库,例如GMP