今天看计算机组成原理,忽然看到二进制的原码补码和反码部分。就想到一个问题,八位二进制数为什么表示范围是:-128~~+127? 当然这是用补码表示的时候才会出现的。
8位二进制原码的表示范围:-127~+127
8位二进制反码的表示范围:-127~+127
8位二进制补码的表示范围:-128~+127
n位二进制原码和n位二进制反码:-2^(n-1)-1~+2^(n-1)-1;n位二进制补码:-2^(n-1)~+2^(n-1)-1。
这条好久之前就知道,但是也没具体想过是什么原因,其实也是很简单,
计算机对带符号数的表示有三种方法:原码、反码和补码
8位原码和反码能够表示数的范围是-127~127
8位补码能够表示数的范围是 -128~127
所以既然范围是-128~127,那肯定是用补码表示的。
10000000-11111111表示-128到-1, 00000000-01111111表示0-127
补码的1111 1111转换成原码就是1000 0001,也就是-1。
补码就是二进制表示负数的一种方法
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)
文章评论