在看如下代码之前,要知道原码,反码,补码之间的关系
首先要知道第一位是符号位,0代表是正数,1代码是负数
正数的原码,反码,补码相同
负数的反码是符号位不变,其他位按位取反
负数的补码是反码+1
给出一段代码,给出原码,反码和补码
int main(){
int a=1;
//00000000000000000000000000000001 - 1的原码
//00000000000000000000000000000001 - 1的反码
//00000000000000000000000000000001 - 1的补码
int b=-1;
//10000000000000000000000000000001 - -1的原码
//11111111111111111111111111111110 - -1的反码
//11111111111111111111111111111111 - -1的补码
return 0;
}
关于负数的原码反码补码中的问题
下面讨论大小端字节序的存储问题,是跟数据在内存中的存储有关系,如下图所示