首页 > 编程语言 > 详细

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

时间:2016-11-10 02:12:26      阅读:255      评论:0      收藏:0      [点我收藏+]
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++)

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!