C语言 >> 右移位运算符的原理和一些概念
生活随笔
收集整理的這篇文章主要介紹了
C语言 >> 右移位运算符的原理和一些概念
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、右移位于左移位不同
左移位 不管是 邏輯移位 算術(shù)移位 都是低位補(bǔ)0;
右移位 的 邏輯移位和算術(shù)移位不同, 算術(shù)移位高位補(bǔ)符號(hào)位,邏輯移位 高位補(bǔ)0;
右移位 使用邏輯移位的話 需要強(qiáng)制轉(zhuǎn)換成unsigned 無(wú)符號(hào)型;
2、右移位的計(jì)算方法
以 a=113 , a >>2 為例
113: 0111 0001
>>2: 0001 1100
即 28; a>>2 = 28;
以 b=-113 , b>>2 為例
-113 : 1111 0001
反碼: 1000 1110
補(bǔ)碼: 1000 1111
>>2 : 1110 0011 (高位補(bǔ)符號(hào)位1)
再反碼:1001 1100
再補(bǔ)碼:1001 1101
即 b>>2 = -29;
正數(shù)的 補(bǔ)碼是其本身,所以不用反復(fù)求補(bǔ)碼; 負(fù)數(shù)則不同。
另; 移位的位數(shù) 不能為負(fù)值 , a>>-2 或者a<<-2 是錯(cuò)誤的。
總結(jié)
以上是生活随笔為你收集整理的C语言 >> 右移位运算符的原理和一些概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 拳击多少钱啊?
- 下一篇: 试管婴儿移植后发烧怎么办?