国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

NeverSayNever / 1171人閱讀

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

目錄

1、移位操作符

2、位操作符


1、移位操作符

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

左移操作符:

移位規則:左邊拋棄,右邊補0。

什么意思呢,現在就讓我來仔細講解一番。

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

?根據上圖可知a<<2后得到的結果就是20。

右移操作符:

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

算數移位規則:左邊用該值的符號位填充,右邊丟棄。

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

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

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

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

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

?

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

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

?

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

2、位操作符

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

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

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

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

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

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

因此a&b的結果就為3了。

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

?

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

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

?所以a^b的結果就是-8啦。

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

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

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/124772.html

相關文章

  • C語言基礎作符詳解

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

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

    摘要:今天小玄為大家帶來語言的操作符相關的講解,希望大家能通過這篇文章對相關操作符有更加深入的理解。操作符的兩個操作數必須為整數。操作符的優先級操作符的結合性是否控制求值順序。兩個相鄰的操作符先執行哪個取決于他們的優先級。 ????????今天小玄為大家帶來C語言的操作符相關的講解,希望大家能通過...

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

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

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

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

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

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

    yck 評論0 收藏0

發表評論

0條評論

NeverSayNever

|高級講師

TA的文章

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