测试数据是-2147483649,我用long long来存储结果,在VS上运行正确,但在牛客上运行结果为2147483647,这是为啥?为啥连符号都变了?
注:牛客编译器版本为c++11(clang++ 3.9)
求助!long long数据范围出错
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
Arneking 2020-05-25 18:57关注不了解牛客编译器,但是看起来是数据类型读取出错了,
感觉你这个编译器把longlong定义为4字节长度的数据了
有符号int范围-2147483648~-2147483647,越界 -1,直接补码变成2147483647还有一种可能,是你自己赋值计算的时候出现了问题..
例如一个INT的数值,你参与到了longlong的数据赋值中,没有先转换数据类型
而是直接赋值 longlong x=int a- 2;编译器会用int类型计算再赋值到longlong解决 无用评论 打赏 举报