原码反码补码

正数

正数的原码反码补码都一样

7

原码:0000 0111

反码:0000 0111

补码:0000 0111

负数

-7

原码:1000 0111

反码:1111 1000

补码:1111 1001

以下将打印出负数的16进制反码

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char const *argv[])
{
	int i = -7;
	printf("%x\n", i);
	printf("%u\n", i);
	return 0;
}

原码反码补码

第一个结果为-7的补码,

第二个数是以无符号数格式打印出来的,它将-7的补码的首位当成普通位来计算

验证

原码反码补码

原码反码补码