成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

C語言之移位操作符、位操作符詳解

NeverSayNever / 1206人閱讀

摘要:目錄移位操作符移位操作符位操作符位操作符移位操作符分為左移操作符和右移操作符。左移操作符移位規(guī)則左邊拋棄,右邊補。算數(shù)移位和邏輯移位。

目錄

1、移位操作符

2、位操作符


1、移位操作符

分為左移操作符(>>)和右移操作符(<<)。

左移操作符:

移位規(guī)則:左邊拋棄,右邊補0。

什么意思呢,現(xiàn)在就讓我來仔細講解一番。

比如我們定義一個整型變量a,給它賦初值5.如int a=5;然后將a左移,即a<<2,得到的結(jié)果又是多少呢?在講之前,我們首先要了解到整型5在內(nèi)存中是怎樣存儲的,不太清楚的友友們就請看我之前一篇博客整數(shù)的3種表達形式及在內(nèi)存中的存儲啦,里面有詳細講解。整型5是以補碼的形式來存儲的。而將5左移2位就是將存儲在內(nèi)存中的二進制位向左移動2位并將此2位拋棄,右邊用0補齊。最后得到的就是5<<2后的結(jié)果啦,可以用一下圖來簡單描述一下~

?根據(jù)上圖可知a<<2后得到的結(jié)果就是20。

右移操作符:

首先右移運算分為兩種。算數(shù)移位和邏輯移位。

算數(shù)移位規(guī)則:左邊用該值的符號位填充,右邊丟棄。

邏輯移位規(guī)則:左邊用0補充,右邊丟棄。

具體什么意思呢,我們還是來看看幾個例子,如將5右移移位,即5>>1,得到的是多少呢?

如果是算數(shù)移位的話,就是將5存儲在內(nèi)存中的二進制位向右移動1位并將這一位拋棄,左邊用該值存儲的二進制位的符號位補齊。如下圖:

所以5>>1得到的結(jié)果就是2。那邏輯移位呢,邏輯移位就是左邊用0,補充,右邊拋棄。對正數(shù)而言,其符號位就是0,所以算數(shù)移位與邏輯移位得到的結(jié)果相同,邏輯移位也可以用上圖來表示啦,得到的結(jié)果也是2。

若將-5右移一位呢,得到的結(jié)果又是什么呢。我們先來看看算數(shù)移位,就不多贅述了,請看下圖:

?

所以-5>>1算數(shù)移位得到的就是-3。

同理,我們來看看-5>>1邏輯移位的得到的是什么吧~

?

因為最高位是0,所以最后的結(jié)果就是3啦~。但是一般條件下都是用的算數(shù)移位哈。

2、位操作符

&? ? ?按位(二進制位)與

|? ? ? 按位(二進制位)或

^? ? ?按位(二進制位)異或

我們直接來看這段代碼,大家可以先猜一下最后輸出的是哪三個數(shù)呢:

int main(){	int a = 3;	int b = -5;	printf("%d %d %d", a & b, a | b, a ^ b);	return 0;}

我們先來分析一下:按位與就是將兩個數(shù)存儲的二進制位作比較,兩者均為1才為1,否則為0。因此a&b用圖來分析就是:

因此a&b的結(jié)果就為3了。

按位或就是?將兩個數(shù)存儲的二進制位作比較,兩者中有一個為1就為1,否則為0。因此a|b用圖來分析就是:

?

所以a|b的值就是-5了。

按位異或就是?兩個數(shù)存儲的二進制位作比較,兩者相同為0,相異為1,因此a^b用圖來分析就是:

?所以a^b的結(jié)果就是-8啦。

最后我們讓程序來運行一下:

?是和分析的一樣吧~~~

到這里就結(jié)束啦,希望友友們能給個贊哈~~~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/124772.html

相關(guān)文章

  • C語言基礎(chǔ)作符詳解

    摘要:語言基礎(chǔ)之操作符詳解操作符的分類算術(shù)操作符移位操作符位操作符邏輯操作符逗號表達式表達式求值隱式類型轉(zhuǎn)換算術(shù)轉(zhuǎn)換操作符的屬性今天就帶各位大佬來了解一波語言的操作符。 ...

    snowell 評論0 收藏0
  • C語言作符多圖詳解】——“講述你所未知的作符細節(jié)”

    摘要:今天小玄為大家?guī)碚Z言的操作符相關(guān)的講解,希望大家能通過這篇文章對相關(guān)操作符有更加深入的理解。操作符的兩個操作數(shù)必須為整數(shù)。操作符的優(yōu)先級操作符的結(jié)合性是否控制求值順序。兩個相鄰的操作符先執(zhí)行哪個取決于他們的優(yōu)先級。 ????????今天小玄為大家?guī)鞢語言的操作符相關(guān)的講解,希望大家能通過...

    iliyaku 評論0 收藏0
  • 這些c語言作符你確定你掌握了?如果不保準就來看看這篇文章吧

    摘要:毋庸置疑,運算符號操作符就是進行語言的一些運算的,這些運算符雖然你在學語言的時候很不起眼,而在有些題目上還不讓用這些操作符來做題,但是,當你用到他們的時候,他們會給你意想不到的幫助。 目錄 操作符詳解 什么是操作符呢? 操作符的分類 操作符的優(yōu)先級 ?1、優(yōu)先級1級 2、優(yōu)先級2級 3、...

    Carson 評論0 收藏0
  • 再識C語言(五)

    摘要:注不要移動負數(shù)位標準未定義行為這種行為屬于標準未定義行為語言中并沒有規(guī)定移動負數(shù)位。按進制位與規(guī)則兩個二進制數(shù),有則為,全則為。為假的時候,打印語言中表示假,非表示真無論是正數(shù)還是負數(shù)。 C語言操作符詳解 目錄 一、算術(shù)操作符 二、移位操作符 三、位操作符 四、賦值操作符 五、單目操作符 六...

    BigTomato 評論0 收藏0
  • 【STM32】標準庫與HAL庫對照學習教程八--串口通信詳解

    摘要:異步通信與同步通信異步通信異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。同步通信同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達到完全同步。配置串口設(shè)置為異步通信基礎(chǔ)參數(shù)波特率為。 ...

    yck 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<