原码,补码,反码的转化

在计算机语言中我们经常会见到类似原码、补码、反码的概念,那么原码、补码、反码到底是什么呢,它们之间是如何转化的呢?

对于一个正整数来说:原码=补码=反码

例1:1

原码:0 000 0001(最高位为符号位,正数为0,负数为1)

补码:0 000 0001

反码:0 000 0001

例2:-1

原码:1 000 0001(最高位为符号位,负数为1)

补码:1 111 1111(补码=反码+1)

反码:1 111 1110(符号位不变,其他按位取反)

总结

正整数:原码=补码=反码

负整数:反码=原码符号位不变,其他按位取反

补码=反码+1(同样符号位不变)

你可能感兴趣的:(c语言)