一个小程序 关于位运算的,来为前辈帮我看看#include <stdio.h>void main(){int a;a=~2;printf("%d",a);}结果a=-3;我是在VC++6.0 上运行的0010 取反后是1101 这怎么也不会是-3啊。 求解[解决办法]2的二进制为:00000010 一个字节取反为:11111101是一个负数,是有符号的数,负数在计算机里要用其补码来表示:补码=符号位以后按位取反再加110000010+1=10000011=-3