A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sxakljf 中级黑马   /  2015-6-20 12:24  /  669 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

最明显的区别就是二者表示的范围不同:
无符号数中,所有的位都用于直接表示该值的大小.有符号数中最高位用于表示正负,所以,当为正值时,该数的最大值就会变小.我们举一个字节的数值对比:无符号数:1111 1111 值:255 1* 27 + 1* 26 + 1* 25 + 1* 24 + 1* 23 + 1* 22 + 1* 21 + 1* 20有符号数:0111 1111 值:127 1* 26 + 1* 25 + 1* 24 + 1* 23 + 1* 22 + 1* 21 + 1* 20 同样是一个字节,无符号数的最大值是255,而有符号数的最大值是127.原因是有符号数中的最高位被挪去表示符号了.并且,我们知道,最高位的权值也是最高的(对于1字节数来说是2的7次方=128),所以仅仅少于一位,最大值一下子减半.不过,有符号数的长处是它可以表示负数.因此,虽然它的在最大值缩水了,却在负值的方向出现了伸展.我们仍一个字节的数值对比:无符号数:0 ----------------- 255有符号数:-128 --------- 0 ---------- 127 同样是一个字节,无符号的最小值是 0 ,而有符号数的最小值是-128.所以二者能表达的不同的数值的个数都一样是256个.只不过前者表达的是0到255这256个数,后者表达的是-128到+127这256个数.

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马