對壹個數實施左移操作=對這個數×2;對壹個數實施右移操作=對這個數÷2。
a=ox32(16進制)00110010
b=a<<2
這個時候b=11001000對
那麽此時a=00110010
繼續
c=a<<2
請問c是在原來a的初值(ox32)上移動
這個時候c=11001000
壹個十進制的數,在電腦中都可以按二進制表示。例如:數字8,二進制就是1000.左移壹位,1000<<1=00010000=16,因此就是=8×2;同理右移壹位,1000>>1=0100=4,就是8÷2。
擴展資料
C語言中移位代替乘除
unsignedinthash(charconst*s)
{
unsignedh=0;
while(*s!='\0'){
h=127*h+(unsignedchar)*s;
++s;
}
returnh;
}