八位二进制数为什么表示范围是:-128~~+127?

八位二进制数为什么表示范围是:-128~~+127?

计算机对带符号数的表示有三种方法:原码、反码和补码
8位原码和反码能够表示数的范围是-127~127
8位补码能够表示数的范围是 -128~127
所以既然范围是-128~127,那肯定是用补码表示的。
10000000-11111111表示-128到-1, 00000000-01111111表示0-127
补码的1111 1111转换成原码就是1000 0001,也就是-1。
补码就是二进制表示负数的一种方法

引入了补码概念. 负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的.在补码中用(-128)代替了(-0),所以补码的表示范围为:

(-128~0~127)共256个.

注意:(-128)没有相对应的原码和反码, (-128) = (10000000)
    
       所谓原码就是 二进制 定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
  反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
  补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

 

你可能感兴趣的:(Java知识理解)