码迷,mamicode.com
首页 > 其他好文 > 详细

整数存储方式

时间:2016-06-05 15:16:20      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

;整数-5的原码(1字节) 1000 0101
          反码            1111 1010  符号位不变其余位按位取反
     -5  补码      1111 1011 反码加1得到 补码
    求补码还可以 直接绝对值取反加1得到补码 例如:
    -5绝对值 0000 0101
                 1111 1010 取反      
    -5补码  1111 1011 加1得到补码
        
求整数-5的绝对值, 补码取反加1得到绝对值
        补码   1111 1011
        取反   0000 0100
     取反加1 0000 0101  = 5
 

整数存储在intel cpu是按照,小尾方式存储的(也叫本地字节序),网络字节序(大尾存储)

小尾 低字节->低地址
大尾 高字节->低地址
例如:0x12345678
           
小尾存放是 78 56 34 12
大尾存放是 12 34 56 78

如果把本地字节序整数发送到网络对面的一台机器就需要转换成网络字节序才能发送,
ntohl()来实现从网络字节序到本地字节序的转换。
 
本地字节序->网络字节序->本地字节序
 
一个 char 占用1字节 数值表示范围为 有符号的-128 到 127 
无符号的数值表示范围为0-255
 
-1 = 128 论证
128 64 32 16 8 4 2 1 
1111 1111 128的补码
-1的补码
1000 0001
1111 1110 + 1
1111 1111 
得出 -1 在二进制中等于128
 
有符号整数 溢出等于最小 也就是说 一个char 等于128 那么溢出等于 -1
-129 溢出 为最大 127

整数存储方式

标签:

原文地址:http://www.cnblogs.com/jk0011/p/5560652.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!