C语言如果指定整型常量为无符号型,则存储单元全部二进位用作存放数本身,不包括符号。是什么意思啊?

[复制链接]
查看11 | 回复5 | 2008-11-6 11:58:43 | 显示全部楼层 |阅读模式
如果指定整型常量为无符号型,则存储单元全部二进位用作存放数本身,不包括符号。是什么意思啊?最高位不是已经表示符号了吗?如果去掉它不就不够16个位了吗? 大哥们 帮帮忙 详细点加分

回复

使用道具 举报

千问 | 2008-11-6 11:58:43 | 显示全部楼层
因为是无符号型的,所以最高位的0或1不表示符号,而表示数字,那么两字节的空间正好是16位的二进制数,如果是int型的,那么最高位的一位就表示正负,0表示正,1表示负。两字节的空间里,16位就要少一位了。...
回复

使用道具 举报

千问 | 2008-11-6 11:58:43 | 显示全部楼层
最高位如果是1,它被结实成127,而不是负号,,换句话说,以牺牲表示负数的能力为代价,是它能够表示更多的正数...
回复

使用道具 举报

千问 | 2008-11-6 11:58:43 | 显示全部楼层
不是去掉是最高为也表示数值,所以无符号的比有符号的表示的数范围大...
回复

使用道具 举报

千问 | 2008-11-6 11:58:43 | 显示全部楼层
如果是有符号型的,有正有负,需要符号位,最高位表示符号,1表示负,0表示正,后面15位用于表示数值; 如果是无符号型的,全部都是正数,故不需要符号位,16位全部用于表示数值...
回复

使用道具 举报

千问 | 2008-11-6 11:58:43 | 显示全部楼层
有符号的int,就是1位符号位加上15位数据位(32位处理器)。 unsigned int,就是16位数据位,没有符号位。 这样够明白了吧?...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行