黑马程序员技术交流社区
标题:
有符号数和无符号数的区别
[打印本页]
作者:
sxakljf
时间:
2015-6-20 11:28
标题:
有符号数和无符号数的区别
最明显的区别就是二者表示的范围不同:
无符号数中,所有的位都用于直接表示该值的大小.有符号数中最高位用于表示正负,所以,当为正值时,该数的最大值就会变小.我们举一个字节的数值对比:无符号数: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个数.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2