char是一个字节,也就是8bit,范围是-128~127而0xff是16进制,换算成十进制就是255,超出范围,所以溢出了所以这里取x的补码,也就是-1输出-1后,x减1的到-2(不过没有再输出了不用管它)正数的补码:与原码相同。 负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。
其实在计算机内部他都是:1111 1111对于char型范围: -128~127第一位是符号位,如果要整型输出,求他的补码就是 1000 0001表示的就是-1