任意一个数据都有原码、反码、补码这么三种形式。
数据在计算机中是以补码形式来存储的,因此实际上计算的也是数据的补码。
对于正数,原反补三码一致。
int i = 5;
原码:00000000 00000000 00000000 00000101
反码:00000000 00000000 00000000 00000101
补码:00000000 00000000 00000000 00000101
对于负数,
反码是在原码的基础上最高位不变,其余位1->0,0->1;
补码在反码的基础上+1---最高位是符号位,0表示正数,1表示负数
int i = -3;
原码:10000000 00000000 00000000 00000011
反码:11111111 11111111 11111111 11111100
补码:11111111 11111111 11111111 11111101
网友评论