计算机原码、反码、补码转换详解
计算机中采用二进制数表示,其中最高位为符号位,0表示正数,1表示负数。为了表示负数,计算机使用原码、反码和补码三种表示方法。
- 原码转反码
如果一个数是正数,则它的原码、反码和补码相同。如果一个数是负数,则它的反码是将原码中除符号位外的所有位按位取反得到的。
例如,-5的原码为10000101,将除符号位外的位取反得到的反码为11111010。
- 原码转补码
如果一个数是正数,则它的原码、反码和补码相同。如果一个数是负数,则它的补码是将原码中除符号位外的所有位按位取反,再将结果加1得到的。
例如,-5的原码为10000101,将除符号位外的位取反得到的反码为11111010,再将反码加1得到的补码为11111011。
- 补码转原码
如果一个数的符号位为0,则它的原码、反码和补码相同。如果一个数的符号位为1,则它的原码是将补码中除符号位外的所有位按位取反,再将结果加1得到的。
例如,补码11111011表示的数为负数,将其除符号位外的位取反得到的反码为10000100,再将反码加1得到的原码为10000101,即-5。
- 反码转原码
如果一个数的符号位为0,则它的原码、反码和补码相同。如果一个数的符号位为1,则它的原码是将反码中除符号位外的所有位按位取反得到的。
例如,反码11111010表示的数为负数,将其除符号位外的位取反得到的原码为10000101,即-5。
原文地址: https://www.cveoy.top/t/topic/nzFK 著作权归作者所有。请勿转载和采集!