c语言中的-100和~100

首先是一个程序:

 

int num1=100,num2=-num1;
    printf("%d,%d,%d",num1,num2,~num1);
    return 0;
运行结果:
100,-100,-101

num2还是很好理解的这里主要了解一下 ~num1

首先100的二进制是:0110 0100然后与1111 1111相与得到1001 1011 (正确数值的补码)

然后1001 1010(正确数值的反码)最后是1110 0101(二进制原码)最后变成十进制是:-101