原码,反码,补码概念

tech2025-01-17  1

原码,反码,补码概念

原码反码补码测试 学而不思则罔,思而不学则殆


类型简要说明原码符号位+绝对值反码正数的反码等于原码,负数在原码的基础上,符号位不变,其余为取反补码正数的补码等于原码,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

0 表示 正 1 表示 负

原码


原码 = 符号位+绝对值

[+1]原码 = 0000 0001 [-1]原码 = 1000 0001

反码


正数的反码等于原码 负数在原码的基础上,符号位不变,其余为取反

[+1]原码 = 0000 0001 …… [+1]反码 = 0000 0001 [-1]原码 = 1000 0001 …… [-1]反码 = 1111 1110

补码


正数的补码等于原码 负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

[+1]原码 = 0000 0001 …… [+1]反码 = 0000 0001……[+1]补码 = 0000 0001

[-1]原码 = 1000 0001 …… [-1]反码 = 1111 1110…… [-1]补码 = 1111 1111

测试


在java中int占32位,如下是计算中展示的机器码。

0 = 00000000000000000000000000000000 1 = 00000000000000000000000000000001 3 = 00000000000000000000000000000011 7 = 00000000000000000000000000000111 -1 = 11111111111111111111111111111111 -3 = 11111111111111111111111111111101 -7 = 11111111111111111111111111111001

正数=原码=反码=补码 比如-3的机器码是11111111111111111111111111111101

【-3】原码=10000000000000000000000000000011 【-3】反码=11111111111111111111111111111100 【-3】补码=11111111111111111111111111111101

所以我们在程序看到的【-3】的机器码是11111111111111111111111111111101 = 补码

最新回复(0)