嘉然在新加坡加班 2020-05-25 15:02 采纳率: 0%
浏览 296
已结题

求助!long long数据范围出错

测试数据是-2147483649,我用long long来存储结果,在VS上运行正确,但在牛客上运行结果为2147483647,这是为啥?为啥连符号都变了?
注:牛客编译器版本为c++11(clang++ 3.9)

  • 写回答

1条回答 默认 最新

  • Arneking 2020-05-25 18:57
    关注

    不了解牛客编译器,但是看起来是数据类型读取出错了,
    感觉你这个编译器把longlong定义为4字节长度的数据了
    有符号int范围-2147483648~-2147483647,越界 -1,直接补码变成2147483647

    还有一种可能,是你自己赋值计算的时候出现了问题..
    例如一个INT的数值,你参与到了longlong的数据赋值中,没有先转换数据类型
    而是直接赋值 longlong x=int a- 2;编译器会用int类型计算再赋值到longlong

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月18日