数值一律用补码来存储:
正数的补码:与原码相同。
7的补码为0...0 0000 0111。
负数的补码:符号位为1,其余位为该数绝对值的原码按位取反,然后加1。
-7的补码为1...1 1111 1001。
已知补码,若为负,则取反+1,得其值。
char范围:-128 ~ 127,0x80为-128.
#include <stdio.h>
int main(void)
{
int a = 0x80; // 00 1000 0000, 128
char b =char(a); // 有符号,-128
printf("%x\n",b); // -128的int
printf("%x\n",-128);
return 0;
}