大佬们,为什么long long int存储-1会变成正数啊?
c吧
全部回复
仅看楼主
level 1
首先是申请空间:
vector<long long int> p;
加载文件里的内容:
461076676 -1 12345 54321 -1 0 2
然后读进来:fscanf(fp, "%lld %lld %d %d %d %d %d\n", &header[0], &header[1], &header[2], &header[3], &header[4], &proto_mask, &fid);
赋值:
p.push_back(header[0]);
p.push_back(header[1]);
p.push_back(header[2]);
结果p里面所有的-1都是4294967295,为什么呀?long long int不能存-1?还非得2^32+1??
2021年12月01日 03点12分 1
level 1
不对啊,这个值不是2^32-1吗?long long int只有32位???
2021年12月01日 03点12分 2
level 1
long long int不是和__int64一样吗?我用__int64读出来(%I64d)也还是等于2^32-1
2021年12月01日 03点12分 3
level 1
到底怎么表示2^-32~2^32这个范围呢?
2021年12月01日 03点12分 4
level 1
可是,我4051992041明显大于2^31,这个能正常表示,为什么-1就变成2^32-1了?那我岂不是4294967295和-1在__int64中表示的是一样的?
2021年12月01日 03点12分 5
level 8
欢迎进来一起学习交流讨论
2021年12月13日 07点12分 6
level 12
感觉应该是你scanf那行的问题…
2022年05月18日 08点05分 8
1