1. 算術右移一位是什麼意思
看你的分類是在c和c++的,那應該是說基於二進制的數值運算,也就是位運算,舉個例子,把一個十進制的數字,比如把4算術右移一位,這樣相當於除2,結果等於2,。具體的分析請網路位運算,鏈接是http://ke..com/view/379209.htm?fr=aladdin。
2. 為什麼右移兩位相當於除以四啊
首先,10010110右移1位怎麼會是11001011?應該是01001011才對(前面補0)右移接近於除以2,,其原理也很簡單:2進制轉換為10進制,是數字*2^加權如10010110=1*2^7+0*2^6+0*2^5+1*2^4+0*2^3+1*2^2+1*2^1+0*2^0右移1位以後為1001011=1*2^6+0*2^5+0*2^4+1*2^3+0*2^2+1*2^1+1*2^0相當於所有的加權都-1,則相當於除以2補充,你那種最高位保留的,最高位是作為符號位的,所以保留,實際數值是後面的7位,如10010110,則右移後為10001011,也是要補個0的
3. 1111100算術右移2位11111111,相當於除四。相當於除四是什麼意思
應該是「相當於除以4」。「以」字是很重要的。
1111100/4=11111
這個問題里有好多錯……右移的話前面補的是0吧。
4. java右移n位,相當於除於2的n次方
System.out.println(Integer.toBinaryString(60));//111100
System.out.println(60 >> 4);//000011 3
確實是3
5. 如果使用右移運算符移動1位,相當於除以2的話,那麼,-10>>2,應該相當於-10除以4,可
所提的問題的回答正確。
右移1位相當於除以2,這個只有正數適用,而負數不適用。
右移運算符,移位運算符的一種:程序設計中,位操作運算符的一種。在c++中,移位運算符組成的表達式也屬於算術表達式,其值為算術值。
右移運算是將一個二進制位的操作數按指定移動的位數向右移動,移出位被丟棄,左邊移出的空位或者一律補0,或者補符號位,這由不同的機器而定。在使用補碼作為機器數的機器中,正數的符號位為0,負數的符號位為1。
6. 在c語言中的0xfe向右移動6位是多少
右移取決於變數的類型
如果 變數是char 有符號 一位元組 那麼0xfe右移 左邊要填1, 也就是右移6位結果是0xff
如果是無符號, 或者是超過一位元組的有符號,那麼左邊填0
右移6位結果為 0x03
7. C語言中的右移一位是不是應該除以2
右移一位相當於除以2。
例:5>>1
5的二進製表示是101,那麼右移一位之後是10就是2了,是整除的;左移的話就是在後面補一個零,相當於是乘以二,那麼變成了1010,十進制是10。
101右移,就是把最後一位拿掉了,是10這個是二進制的,十進是2,5/2本來是小數,但這里是整數操作的,所以把小數部分去掉了。
(7)數據右移6位相當於除以多少擴展閱讀
C語言中的左移
1、左移就是把一個數的所有位都向左移動若干位,在C中用<<運算符.例如:
inti=1;
i=i<<2;//把i里的值左移2位。
2、補符號位,就是一個signedchara=0xff;
a=a>>1;/*它仍是0xff,補了符號位。最高位是符號位=1,右移後符號位保持不變*/;
a=0x80;
a=a>>1;/*變成了0xc0*/
a=0x1f;
a=a>>1;/*變成了0x0f,因為它開始的符號位就是0*/。
8. 請問C語言高手些 把11000000分別右移(0~7位)之後分別各是多少(二進制數形式) 再把每一次移位之後的
每次右移都是高位補0,最低位丟棄,比如右移1位,最低位的0丟棄,最高補0,變為01100000.
右移0位11000000
右移1位01100000
右移2位00110000
右移3位00011000
右移4位00001100
右移5位00000110
右移6位00000011
右移7位00000001
其實右移一次也相當於除以2,
9. 為什麼說x的值被右移了一位,「相當於除以2」
這是二進制計數規則
二進制1000是十進制8
二進制100是十進制4
二進制10是十進制2
10. 在位運算中,操作數每右移一位,其結果相當於( )
根據右移運算的原理,右移一位相當於操作數縮小為原來的1/2,故本題選B)。