首先讲解原码、反码和补码
无符号数按照原码来解析;有符号数按照补码来解析。
例如-1的原码:10000001;反码:11111110;补码:11111111
例如1的原码:00000001;反码:00000001;补码:00000001
#include<stdio.h>
int main(void)
{
char a = -1;
printf("%d\n", a); //-1 11111111 有符号数补码解析 10000001
printf("%u\n", (unsigned char)a); //255 11111111 无符号数按照原码解析 11111111
return 0;
}