左移和右移的運算符?将二進制數向左移位操作,高位溢出則丢棄,低位補0,下面我們就來說一說關于左移和右移的運算符?我們一起去了解并探讨一下這個問題吧!
将二進制數向左移位操作,高位溢出則丢棄,低位補0
a=11;
a<<1;
移位前:0000 1011
移位後:0001 0110(十進制值為22)
b=5;
b<<2;
移位前:0000 0101
移位後:0001 0100(十進制值為20)
根據上述樣例我們可以發現,對一個數左移1位就是乘以2,左移n位就是乘以2的n次方(而左移運算比乘法快得多)
右移>>運算右移位運算中,無符号數和有符号數的運算并不相同。對于無符号數,右移之後高位補0;對于有符号數,符号位一起移動,正數高位補0,負數高位補1
無符号數
a=16;
a>>3;
移位前:0001 0000
移位後:0000 0010(十進制值為2)
有符号數(正數)
b=32;
a>>3;
移位前:0010 0000
移位後:0000 0100(十進制值位4)
有符号數(負數)
b=-32;
b>>3;
移位前:1010 0000
移位後:1000 0100(十進制值為-4)
c=25;
c>>4;
移位前:0001 1001
移位後:0000 0001(十進制值為1)
實際上,我們發現。右移n位就是除以2的n次方,當得到的商不是整數時會往小取整
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!