I have a question.
#include <stdio.h>
int main()
{
unsigned char i = 0x80;
printf("%d\n",i<<1);
return 0;
}
In above program, unsigned char
is assigned 0x80(i.e 128). For i<<1
, I am getting the value of 256. My doubt here is i
= 1000 0000 binary, but how can i<<1
get the value 256 ? why not 0, as (1000 0000)<<1 1 will knocked off ?