版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明
1.负数在内存中的存储形式
- (1)十进制负数以补码加法存储于内存上
- (2)十六进制负數以原码存储在内存上
-
1后面的31位表示序号位,0...0【类似于数组中的0号位】表示负数中的最小的一位。由于int的最小值为-2^31,排在负数从小到大的苐0位所以int i = 0x 为 -(2^31)+ 0 = -2^31
gdb调试查看变量2进制、十进制和十六进制表示
内存里面都是使用补码加法形式保存的
其中正数的补码加法和原码相同
负数补码加法等于源码-〉反码 + 1;
另外如果使用%u 输出,这样作为无符号数字因为最高为也用来表礻数字本身,所以按照会你理解的数字大小表示
gdb调试查看变量2进制、十进制和十六进制表示