存储方式
整型数据都以补码的形式储存在内存中。
使用补码能方便的进行运算,具体的方式本文就不做详细分析了,可参考https://blog.youkuaiyun.com/changgui5211/article/details/46779441
有符号类型最高位位符号位,0代表正数,1代表负数.
原码:
除了符号位,其余是数据的绝对值的二进制数
例子:若机器字长n等于8,则
[+1]原=0000 00001 [-1]原=1000 00001
[+127]原=0111 1111 [-127]原=1111 1111
[+45]原=0010 1101 [-45]原=1010 1101
反码:
正数的反码和补码都和原码一样. 负数的反码是除了符号位,其余的对其原码逐位取反
例子:若机器字长n等于8,则
[+1]反=0000 00001 [-1]反=1111 1110
[+127]反=0111 1111 [-127]反=1000 0000
[+45]反=0010 1101 [-45]反=1101 0010
补码
正数和原码一样,负数的补码=其反码+1
例子:若机器字长n等于8,则
[+1]补=0000 00001 [-1]补=1111 1111
[+127]补=0111 1111 [-127]补=1000 0001
[+45]补=0010 1101 [-45]补=1101 0011

本文介绍了整型数据在内存中的存储方式,包括原码、反码和补码的概念,并详细阐述了有符号int类型的取值范围,从-2^31到2^31-1。同时,讨论了溢出问题,分析了上溢和下溢的现象及其原因。此外,还提及了无符号整型unsigned int的取值范围0~2^32-1及其溢出情况。
最低0.47元/天 解锁文章
2993

被折叠的 条评论
为什么被折叠?



