无符号数与有符号数在内存中表现形式

首先讲解原码、反码和补码

无符号数按照原码来解析;有符号数按照补码来解析。

例如-1的原码:10000001;反码:11111110;补码:11111111

例如1的原码:00000001;反码:00000001;补码:00000001

#include

int main(void)

{

char a = -1;

printf("%d\n", a); //-1   11111111  有符号数补码解析 10000001

printf("%u\n", (unsigned char)a); //255 11111111 无符号数按照原码解析 11111111

return 0;

}

你可能感兴趣的:(C语言,数据类型,内存)