合聚咖

合聚咖

C语言的一个问题。

admin

简单来说,题目问的是:

uc是unsigned char,内存中二进制表示是00001100。

sc是signed char,内存中二进制表示的是11111011。

求uc,sc的初值。

unsigned char是无符号的,00001100就是十进制中的12。

signed char是有符号的,在内存中以补码形式存在,

11111011首位是1,因此是负数,

按位取反,末尾加1得到:00000101是十进制的5,

因此是-5.

所以:

unsigned char uc=12;

signed char sc=-5;