0x80000000存储和表示问题

2018-01-09  本文已影响0人  xkang

看算法时,发现以下设置语句

int i = 0x80000000
// 二进制表示为 10...0, ...表示省略中间的0或1

推测是负数最小值,可是观察其二进制表示,第一位是符号位,1表示负数,那么上述的值就是 -0,很明显不是这个含义。所以到网上查阅了一下,找到了这个答案。
转载至 关于0x80000000为什么等于-2147483648和负数在内存上储存的问题

1.负数在内存中的存储形式

-8的在内存上存储形式: 1...1000
int i = 0x80000001
// i=-1在内存上表示为 10...01

2.总结

花了半个小时整理别人的东西,也算小有收获。符号位+序号位原则,序号位从0开始,序号位的值是多少就在最小值的基础上加上多少。好像也是符合正数的情况~~~。

数值 = 该符号下最小值 + 序号位表示数

以上。

上一篇 下一篇

猜你喜欢

热点阅读