char a=0xff, res;
res = a >> 3;
printf("%#x\n",res);
unsigned char b=0xff, res1;
res1 = b>>3;
printf("%#x\n",res1);
0xffffffff : signed는 sign bit로 채움.
0x1f : unsigned는 0으로 채움.
printf 할 때 프린트버퍼에 먼저 들어가는 데, 4바이트 단위로 들어감.
1바이트 char를 넘길 때, 확장해서 넘김.
unsigned가 들어 갈 때, 확장 시 0으로 확장해서 0000001f 이므로 ,1f만 찍힘.
signed일 경우에는 sign bit로 확장. ffffff가 확장됨.
res = a >> 3;
printf("%#x\n",res);
unsigned char b=0xff, res1;
res1 = b>>3;
printf("%#x\n",res1);
0xffffffff : signed는 sign bit로 채움.
0x1f : unsigned는 0으로 채움.
printf 할 때 프린트버퍼에 먼저 들어가는 데, 4바이트 단위로 들어감.
1바이트 char를 넘길 때, 확장해서 넘김.
unsigned가 들어 갈 때, 확장 시 0으로 확장해서 0000001f 이므로 ,1f만 찍힘.
signed일 경우에는 sign bit로 확장. ffffff가 확장됨.