一、扩展
无符号整数的扩展:高位补 0
有符号整数的扩展:高位补符号位
#include <stdio.h>
int main()
{
char a = -1;
char b = 1;
unsigned char c = -1;
/* (int)a: -1(ffffffff), (int)b: 1(00000001), (int)c: 255(000000ff) */
printf("(int)a: %d(%08x), (int)b: %d(%08x), (int)c: %d(%08x)\n"
, (int)a, (int)a, (int)b, (int)b, (int)c, (int)c);
return 0;
}
二、截断
无论是无符号整数还是有符号整数,都是仅保留低位部分,舍弃高位部分