今天学习了原码、反码和补码,简单总结一下,希望有缘看见的大神批评指正。
首先每个数字是以二进制在计算机中表示的,叫做这个数的机器数。一个机器位的最高位存放正负符号,0代表正值,1代表负值,被称为符号位。
int 2(int占4个字节)
二进制(机器数):00000000000000000000000000000010
int -2
二进制(机器数):10000000000000000000000000000010
这个二进制值也被称为原码。
正数和0的反码是其本身,例如2
原码:000000000000000000000010
反码:000000000000000000000010
补码:111111111111111111111111110
反码与原码相同。
负数的原码除符号位也就是第一位之外,其余各位取反。例如-2
原码:100000000000000000000010
反码:111111111111111111111111101
补码: 111111111111111111111111110
正数和0的补码就是其本身,负数的补码是在这个数反码最后一位加1
综上所属:可以认为计算机存储的都是补码,(正数原码、反码、补码相同,负数以补码形式存放在计算机中)
原码、反码和补码
于 2022-03-03 17:12:25 首次发布