原码反码补码

数据存储在内存中都是以二进制进行存储的,二进制有分为原码、反码、补码,最终存储在内存中的是“补码”。

原码:一个数的二进制就是这个数的原码。二进制的第一位是符号位,0代表是正数,1代表是负数。如果是正数,转换成二进制就是这个正数的原码;如果是负数,先取绝对值再转换成二进制,最后在最高位补1,就是该负数的原码。

例:int类型的5的原码是00000000 00000000 00000000 00000101;-5的原码是10000000 00000000 00000000 00000101

反码:正数的反码就是原码的本身。负数的反码是符号位不变,其他位取反。

例:int类型的5的反码还是00000000 00000000 00000000 00000101;-5的反码是11111111 11111111 11111111 11111010

补码:正数的补码还是原码。负数的补码是在得到反码的基础上,最低位加1。

例:int类型的5的补码依旧是00000000 00000000 00000000 00000101;-5的补码是反码(11111111 11111111 11111111 11111010)加1就是1111111 11111111 11111111 11111011

总之,正数的反码、补码都等于原码。负数的反码是原码的符号位不变,其余位取反;补码是反码的最低位加1。

posted @ 2019-09-20 08:35  兜转转  阅读(415)  评论(0编辑  收藏  举报