早教吧 育儿知识 作业答案 考试题库 百科 知识分享

计算机中,有符号数和无符号数的区别有什么区别?

题目详情
计算机中,有符号数和无符号数的区别有什么区别?
▼优质解答
答案和解析
最明显的区别就是二者表示的范围不同:
无符号数中,所有的位都用于直接表示该值的大小.有符号数中最高位用于表示正负,所以,当为正值时,该数的最大值就会变小.我们举一个字节的数值对比:无符号数: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个数.