2020-11-14(移位运算)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                2020-11-14(移位运算)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                一般而言,機器支持兩種形式的右移:邏輯右移和算術右移。邏輯右移在左端補上k個0,算術右移是在左端補上k個有效位的值。(左移不分邏輯和算術)
c語言標準并沒有明確定義對于有符號數應該使用哪種類型的右移,實際上幾乎所有的編譯器/機器組合都對有符號數使用算數右移,且語序程序員也都假設機器會使用這種右移。另一方面,對于無符號數,右移必須是邏輯的。
java對于如何右移有明確的規定,表達式x>>k會將x算數右移k個位置,而x>>>k會對x做邏輯右移
移動k位,這里k很大。對于一個由w位組成的數據類型,如果要移動k>=w位會得到什么結果呢?
c語言標準,在很多機器上,當移動一個w位的值時,移位指令只考慮位移量的低log2w位,因此實際上位移量就是要通過計算k mod w得到的。例如,當w=32時,數據類型位8位,則移動0位;當w=36時,數據類型位8位,則移動4位;當w=40時,數據類型位8位,則移動8位
 另一方面,java特別要求位移數量應該按照我們前面所講的求模的方法來計算。
 加減法的優先級比移位運算要高。
總結
以上是生活随笔為你收集整理的2020-11-14(移位运算)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 异或交换值(有趣点)
- 下一篇: 2020-11-15(IEEE浮点数计算
