原码、反码、补码

什么原码、反码、补码?

首先要知道的是,它们都是有符号的数据表示法。

在计算机中,存储系统都是用2进制储存的,对我们输入的每一个信息计算机都会自动转变成二进制的形式,而二进制在存储的时候就会使用到原码,反码和补码。

原码,在数值前直接加入一符号位。

例如:正7用二进制表示为:0 0000111 B

           负7用二进制表示为:1 0000111 B

但要注意的是:在byte中,取值只可在-128~127间。

反码,规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

           正7反码= 0 0000111 B

           负7反码= 1 1111000  B

要注意的是:0的表示为0 0000000,-128的表示为1 0000000,即+127+1=-128,也就是说,byte值溢出了。

因此,有了补码。

补码,正数的补码和原码相同;负数的补码则是符号位为“1”。并且,这个“1”既是符号位,也是数值位。数值部分按位取反后再在末位(最低位)加1。也就是“反码+1”。

总结可以得到,正数的原码、反码、补码表示方法均相同,需要考虑的也就只有负数了。

 

posted @ 2018-10-08 11:44  至尊小虾米  阅读(470)  评论(0)    收藏  举报