码迷,mamicode.com
首页 > 编程语言 > 详细

unsigned/signed使用(c/c++)

时间:2016-11-10 02:12:50      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:底层实现   text   sig   格式化   hid   情况   http   个数   实现   

unsigned/signed,同类型宽度都是一样,short占2字节共16个位,
无符号可以完全利用这16个位来表示数字,就有2^16=65536中可能,
可以表示0~65535,而有符号类型要用到最高位表示符号,
2^15 = 32768,所以能表示-32768~32767,为
了不出现两个0的情况,+0和-0,底层实现一般是用2的补码来表示负
数,一个负数的二进制表示,可以由这个负数的绝对值的二进制表现形
式取反再加1得到,

比如16位short值-1,绝对值是1,二进制表示为:
0000 0000 0000 0001
取反
1111 1111 1111 1110 + 1 =
1111 1111 1111 1111
而正好这个数也是无符号型最大值65535的表现形式,所以对于这个二
进制,是解释为65535还是-1,那就是printf里格式化的功能了。


采纳于:https://zhidao.baidu.com/question/518899275533973525.html

unsigned/signed使用(c/c++)

标签:底层实现   text   sig   格式化   hid   情况   http   个数   实现   

原文地址:http://www.cnblogs.com/jssicelist/p/6049302.html

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