算術左移和右移 邏輯左移和右移這些指令的英文全稱是

2021-09-12 17:38:38 字數 2022 閱讀 5862

1樓:公尺

shl(算數左移):shift logical left

shr(算數右移):shift logical right

sal(邏輯左移):shift arithmetic left

sar(邏輯右移):shift arithmetic right

rol(迴圈左移):rotate left

ror(迴圈右移):rotate right

rcl(帶進製的迴圈左移):rotate left through carry

rcr(帶進製的迴圈右移):rotate right through carry

2樓:二中娃子

magic 是邏輯,arithmetic是算術,所以上邊寫反了,

shl(邏輯左移):shift logical leftshr(邏輯右移):shift logical rightsal(算術左移):

shift arithmetic leftsar(算術右移):shift arithmetic right

3樓:雨月蕭

logical是邏輯的意思

組合語言中 「sal」(算術左移指令)和「shl」(邏輯左移指令)指令有什麼區別?

4樓:匿名使用者

組合語言中 sal(算術左移指令)和shl(邏輯左移指令)指令的定址方式、控制移位方式等都一內樣,區別其實只有一處:容

sal算術移位指令在執行時,實際上把運算元看成有符號數進行移位,最高位符號位移入cf,但本身保持原值;其餘位順序左移,次高位被捨棄。

shl邏輯移位指令在執行時,實際上把運算元看成無符號數進行移位,所有位順序左移,最高位移入cf。

舉例如下:

mov ax,8001h;(ax)=1000 0000 0000 0001b

sal ax,1 ;(ax)=1000 0000 0000 0010b

mov ax,8001h;(ax)=1000 0000 0000 0001b

shl ax,1 ;(ax)=0000 0000 0000 0010b

組合語言中 sal(算術左移指令)和shl(邏輯左移指令)指令的區別?

5樓:牧起雲高媼

算術用於帶符號數運算,邏輯用於不帶的。操作沒區別。都是最高位入cf最低位補0

6樓:白柏亢泰清

算術左移需要對符號位進行擴充套件,即最高位為符號位時,如果左移高位需要使用符號位的值填充,負數(補碼)就用1填充,正數就用0填充;

邏輯左移不考慮符號位,直接在高位補0即可。

而右移就不存在這種區別。

7樓:考運旺查卯

組合語言中

sal(算術左移指令)和shl(邏輯左移指令)指令的定址方式、控制移位方式等都一樣,區別其實只有一處:

sal算術移位指令在執行時,實際上把運算元看成有符號數進行移位,最高位符號位移入cf,但本身保持原值;其餘位順序左移,次高位被捨棄。

shl邏輯移位指令在執行時,實際上把運算元看成無符號數進行移位,所有位順序左移,最高位移入cf。

舉例如下:

movax,8001h;(ax)=10000000

0000

0001b

salax,1

;(ax)=1000

0000

0000

0010b

movax,8001h;(ax)=10000000

0000

0001b

shlax,1

;(ax)=0000

0000

0000

0010b

C語言中怎樣利用移位運算(左移和右移),實現a和b值的互換

不是移位運算,是位運算吧,使用異或運算。void main 這是一道題嗎?還是樓主自己想的?感覺只左移右移 有點難吖!怎麼說呢?如果是位運算,那得看你給的a和b的值,當然還要用到與或非之類的東西,網上應該有教程吧!如果就是交換,那就是樓上的!冒泡?使用 段 for 互換條件 不一定非要用for迴圈,...

在c位運算裡什麼是左移位和右移位

移位操作在程式設計中,位操作運算子的一種。1.在c 中,移位運算子有雙目 內移位運算子 左移容 和 右移 移位運算子組成的表示式也屬於算術表示式,其值為算術值。2.左移運算是將乙個二進位制位的運算元按指定移動的位數向左移位,移出位被丟棄,右邊的空位一律補0。3.右移運算是將乙個二進位制位的運算元按指...

C程式中左移右移的具體用法是什麼

c語言中,為左移運算子,為右移運算子。具體使用方法如下 1 左移運算子 將乙個運算物件的各二進位制位全部左移若干位 左邊的二進位制位丟棄,右邊補0 例 a a 2 將a的二進位制位左移2位,右補0,左移1位後a a 2 若左移時捨棄的高位不包含1,則每左移一位,相當於該數乘以2。2 右移運算子 將乙...