欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c語言左移和右移的示例詳解

 更新時間:2020年07月13日 15:10:30   作者:axiok  
這篇文章主要介紹了c語言左移和右移的示例詳解,移位操作符的兩個操作數(shù)必須是整型的。整個移位表達式的值的類型也是整型的,而且,左移位操作符與右移位操作符的運算并不對稱。

邏輯移位,簡單理解就是物理上按位進行的左右移動,兩頭用0進行補充,不關心數(shù)值的符號問題。

算術移位,同樣也是物理上按位進行的左右移動,兩頭用0進行補充,但必須確保符號位不改變。

算術移位指令

算術移位指令有:算術左移SAL(ShiftAlgebraic Left)和算術右移SAR(ShiftAlgebraic Right)。算術移位指令的功能描述如下:

(1)算術左移SAL把目的操作數(shù)的低位向高位移,空出的低位補0;
(2)算術右移SAR把目的操作數(shù)的高位向低位移,空出的高位用最高位(符號位)填補。

邏輯移位指令

此組指令有:邏輯左移SHL(ShiftLogical Left)和邏輯右移SHR(ShiftLogical Right)。邏輯左移/右移指令只有它們的移位方向不同,移位后空出的位都補0。


結論:不管是否有無符號類型,也不管值的正負,均采用的是邏輯左移。


結論:說明只要是有符號數(shù),不管值是正還是負,右移時采用的都是算術右移。

疑問:按照移位補0的原則,為何左移都是邏輯移位呢?

答疑:先看看“-8”和“8”在計算機內(nèi)存中的值分別是:

0xfffffff8

0x8

由于計算機均按補碼保存數(shù)值,所以不管符號正負,左移對于符號位并不產(chǎn)生影響,而右移則就不同了,無符號數(shù)怎么右移都不影響符號位,但是有符號數(shù)邏輯右移時高位補0將改變符號位,所以只能采用算術右移。

到此這篇關于c語言左移和右移的示例詳解的文章就介紹到這了,更多相關c語言左移和右移內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論