这是我的代码:
std::cout << _cSample << " - " << _bSample
<< " = " << (_cSample - _bSample) << std::endl;
输出结果告诉我:3525 - 150000 = 18446744073709405141
我还不知道为什么?也许是因为他们没有签名?
我如何减去2 size_t?在这里,我希望得到一个基本的减法结果 我在互联网上搜索没有成功。
谢谢!
查看输出:puu.sh/lbPW5/5f998c0c02.png
答案 0 :(得分:0)
这完全是因为他们没有签名。您需要将两者都转换为签名类型才能获得签名结果。例如:
std::cout << _cSample << " - " << _bSample
<< " = " << ((__int64)_cSample - (__int64)_bSample) << std::endl;
您使用的实际签名类型取决于您的编译器。请注意,将无符号类型转换为不大的带符号类型会导致数据丢失。