最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c語(yǔ)言中的移位運(yùn)算符

 更新時(shí)間:2021年05月11日 11:32:36   作者:北川jug  
這篇文章主要介紹了c語(yǔ)言中的移位運(yùn)算符,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

移位運(yùn)算符在程序設(shè)計(jì)中,是位操作運(yùn)算符的一種。移位運(yùn)算符可以在二進(jìn)制的基礎(chǔ)上對(duì)數(shù)字進(jìn)行平移。

c語(yǔ)言中提供了兩種移位運(yùn)算符:

左移運(yùn)算符:<<
右移運(yùn)算符:>>

左移運(yùn)算符(<<)

int main(void)
{
	int a = 4;
	//把a(bǔ)的二進(jìn)制位向左移動(dòng)1位
	int b = a << 1;
	printf("b = %d", b);
	return 0;
}

在32位操作系統(tǒng)中,int類型占4個(gè)字節(jié),1個(gè)字節(jié)有8bit,所以變量a在內(nèi)存中占32個(gè)比特位。

將4賦值給變量a,a中存放的是4的二進(jìn)制形式。

在這里插入圖片描述

將a向左移動(dòng)一位

在這里插入圖片描述

最高位的0丟棄,末位補(bǔ)0

在這里插入圖片描述

可以看到a左移一位后的結(jié)果是1000,轉(zhuǎn)換成10進(jìn)制就是8,所以打印b的結(jié)果就是8。

在這里插入圖片描述

右移運(yùn)算符(>>)

int main(void)
{
	int a = 10;
	//把a(bǔ)的二進(jìn)制位向右移動(dòng)1位
	int b = a >> 1;
	printf("b = %d", b);
	return 0;
}

把10賦值給變量a,將10表示成二進(jìn)制形式

在這里插入圖片描述

將10向右移動(dòng)一位,最低位的0丟棄

在這里插入圖片描述

最高位補(bǔ)0

在這里插入圖片描述

最后的結(jié)果轉(zhuǎn)換成10進(jìn)制就是5

在這里插入圖片描述

我們可以看到最后打印b的結(jié)果確實(shí)是5。

這里需要注意的是,右移分為算數(shù)右移和邏輯右移

算數(shù)右移: 右邊丟棄,左邊補(bǔ)原符號(hào)位
邏輯右移: 右邊丟棄,左邊補(bǔ)0
內(nèi)存中存放二進(jìn)制序列的時(shí)候,最高位是0表示正數(shù),最高位是1表示負(fù)數(shù)。
因?yàn)?0是正數(shù),所以無(wú)論是算數(shù)右移還是邏輯右移,最高位都是補(bǔ)0。那么這里的右移運(yùn)算到底是算數(shù)右移還是邏輯右移呢?
整數(shù)的二進(jìn)制表示形式有三種:原碼、反碼、補(bǔ)碼
原碼:直接根據(jù)數(shù)值寫(xiě)出的二進(jìn)制序列
反碼:原碼的符號(hào)位不變,其他位按位取反
補(bǔ)碼:反碼加1

計(jì)算機(jī)內(nèi)存數(shù)值存儲(chǔ)方式是補(bǔ)碼

int main(void)
{
	int a = -1;
	//把a(bǔ)的二進(jìn)制位向右移動(dòng)1位
	int b = a >> 1;
	printf("b = %d", b);
	return 0;
}

以-1為例

-1的原碼:

在這里插入圖片描述

-1的反碼:

在這里插入圖片描述

-1的補(bǔ)碼:

在這里插入圖片描述

因?yàn)橛?jì)算機(jī)中存儲(chǔ)的是補(bǔ)碼,將-1右移1位,最低位的1舍棄

在這里插入圖片描述

先來(lái)看b的打印結(jié)果

在這里插入圖片描述

b的值為-1,說(shuō)明最高位補(bǔ)的是1,此時(shí)進(jìn)行的是算數(shù)右移。
需要注意的是,雖然a進(jìn)行了右移操作,但是a的值是不發(fā)生改變的,我們可以將a也打印出來(lái)

int main(void)
{
	int a = 10;
	//把a(bǔ)的二進(jìn)制位向右移動(dòng)1位
	int b = a >> 1;
	printf("a = %d\n", a);
	printf("b = %d", b);
	return 0;
}

在這里插入圖片描述

a的結(jié)果仍然是10。

int a = 10;
int b = a + 1;

和上面的代碼是一樣的,在進(jìn)行移位運(yùn)算的時(shí)候,移位對(duì)象的值并不會(huì)發(fā)生改變

到此這篇關(guān)于c語(yǔ)言中的移位運(yùn)算符的文章就介紹到這了,更多相關(guān)c語(yǔ)言 移位運(yùn)算符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++通過(guò)COM接口操作PPT

    C++通過(guò)COM接口操作PPT

    這篇文章主要為大家詳細(xì)介紹了C++通過(guò)COM接口操作PPT的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 淺談C++ 緩沖區(qū)(buffer)的使用

    淺談C++ 緩沖區(qū)(buffer)的使用

    緩沖區(qū)是用來(lái)存放流中的數(shù)據(jù),本文詳細(xì)的介紹了C++ 緩沖區(qū)(buffer)的使用,感興趣的小伙伴們可以參考一下
    2021-06-06
  • .h和.cpp文件的區(qū)別(zt)詳細(xì)介紹

    .h和.cpp文件的區(qū)別(zt)詳細(xì)介紹

    特別是對(duì)源文件和頭文件的概念,需要深入對(duì)它了解,本文將詳細(xì)介紹,需要了解的朋友可以參考下
    2012-11-11
  • Clion配置opencv開(kāi)發(fā)環(huán)境的詳細(xì)過(guò)程

    Clion配置opencv開(kāi)發(fā)環(huán)境的詳細(xì)過(guò)程

    這篇文章主要介紹了Clion配置opencv開(kāi)發(fā)環(huán)境的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考的下
    2022-04-04
  • vscode+qt5+cmake編譯調(diào)試過(guò)程解析

    vscode+qt5+cmake編譯調(diào)試過(guò)程解析

    這篇文章主要介紹了vscode+qt5+cmake編譯調(diào)試過(guò)程解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • C++實(shí)現(xiàn)簡(jiǎn)易反彈小球游戲的示例代碼

    C++實(shí)現(xiàn)簡(jiǎn)易反彈小球游戲的示例代碼

    我們利用printf 函數(shù)實(shí)現(xiàn)一個(gè)在屏幕上彈跳的小球。彈跳的小球游戲比較簡(jiǎn)單、容易入門(mén),也是反彈球消磚塊、接金幣、臺(tái)球等很多游戲的基礎(chǔ),感興趣的可以了解一下
    2022-10-10
  • C++中int類型按字節(jié)打印輸出的方法

    C++中int類型按字節(jié)打印輸出的方法

    這篇文章主要給大家介紹了關(guān)于C++中int類型按字節(jié)打印輸出的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Qt串口通信開(kāi)發(fā)之QSerialPort模塊詳細(xì)使用方法與實(shí)例

    Qt串口通信開(kāi)發(fā)之QSerialPort模塊詳細(xì)使用方法與實(shí)例

    這篇文章主要介紹了Qt串口通信開(kāi)發(fā)之QSerialPort模塊詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下
    2020-03-03
  • C語(yǔ)言之實(shí)現(xiàn)單鏈表指定結(jié)點(diǎn)的插入方式

    C語(yǔ)言之實(shí)現(xiàn)單鏈表指定結(jié)點(diǎn)的插入方式

    這篇文章主要介紹了C語(yǔ)言之實(shí)現(xiàn)單鏈表指定結(jié)點(diǎn)的插入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • C++ vector使用的一些注意事項(xiàng)

    C++ vector使用的一些注意事項(xiàng)

    這篇文章主要給大家介紹了關(guān)于C++ vector使用的一些注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評(píng)論

康平县| 江孜县| 洛隆县| 富平县| 阜康市| 东莞市| 滁州市| 筠连县| 隆回县| 桐柏县| 榕江县| 封开县| 东乌珠穆沁旗| 汶上县| 南京市| 木里| 安泽县| 曲松县| 农安县| 阳朔县| 房山区| 林州市| 安宁市| 白沙| 福鼎市| 米泉市| 乌海市| 广丰县| 屯昌县| 白水县| 正镶白旗| 凯里市| 镇沅| 江阴市| 柘城县| 台湾省| 石景山区| 寻乌县| 杭州市| 定南县| 青田县|