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

資訊專欄INFORMATION COLUMN

C語言 位運算符詳解 (使用二進制實例深入學習理解位運算符使用原理)

1treeS / 1274人閱讀

摘要:位運算符是對其操作數按其二進制形式逐位進行運算。接下來我們逐一講解位運算符的計算原理按位與用于清零取某些指定位保位的計算原理,,結果上面使用按位與的一段程序運行結果為我們用二進制來分析一下它的計算規則。

C語言中位運算符共有六種

目錄

1.&(按位與)

2. |(按位或)

3.^(按位抑或)

4.~(按位取反)

5.<<(左移)

6. >>(右移)

位( bit 是計算機中表示信息的最小單位,一般用 0和 1表示。位運算符是對其操作數按其二進制形式逐位進行運算。
注: 參加位運算的 操作數必須為整數。
接下來我們逐一講解位運算符的計算原理
1.&(按位與)
? 用于清零、取某些指定位、保位
(&的計算原理)
0 & 0 = 0,? ? ?1 & 0 = 0,? ? 1 & 1 = 1.
#includeint main(void){	int a=3,b=5,c;	c=a&b;	printf("%d",c);  //結果c=1	return 0; 

上面使用 按位與&??的一段程序運行結果為c=1

?我們用二進制來分析一下它的計算規則。

a=3? 二進制為 0000 0011

b=5? 二進制為 0000 0101


a&b? 的意思就是01算法,通俗來講a和b的第八位都為1,所以第8位&后的結果為1,前面7位&后的結果都為0

按位計算結果是0000 0001


所以最終c=a&b的結果為c=1

1)清零?

#includeint main(void){	int a=3,b=0,c;	c=a&b;	printf("%d",c);  //結果c=0	return 0; 

a=3? 二進制為 0000 0011

b=0??二進制為 0000 0000


a&b? 8個位的運算結果都為0

所以最終c=0

(2)?取某些指定位

假定a=5,二進制為0000 0011

我們要取a的第3黑第6位

只需計算

0000 0101和1111 1111的結果

可得 c的二進制為0000 0101

所以a的第3位為0,第6位為1

?(3)保位

?例如計算a&b要保a的哪一位,只需將b中對應的位設為1,其余的位設為0.即可實現a的保位

2. |(按位或)用于對一個數據的某些位定值為1

對應位之間按位或的計算 即? 0 | 0= 0 ,? 1 | 0= 1? , 0 | 1= 1? ,? 1 | 1= 1?

( | 的計算原理)

#includeint main(void){	int a=3,b=5,c;	c=a|b;	printf("%d",c);  //c的結果=7	return 0; 

?c=a|b

a=3? 二進制為 0000 0011

b=5? 二進制為 0000 0101

計算結果為0000 0111 即c=7

3.^(按位抑或)

(計算原理)

對應位置見的抑或運算,相同為0,相異為1

即 0 ^ 0=0? , 0 ^ 1= 1? , 1 ^ 0= 1? , 1 ^ 1= 0 。

#includeint main(void){	int a=3,b=5,c;	c=a^b;	printf("%d",c);//c的結果為6	return 0; 

c=a^b

a=3? 二進制為 0000 0011

b=5? 二進制為 0000 0101

計算結果為0000 0110?即c=6

?4.~(按位取反)

#includeint main(void){	int b=5,c;	c=~b;	printf("%d",c);//c的結果為-6	return 0; 

b=5? b的二進制為0000 0101

~b為1111 1010,用十進制表示即為-6。

5.<<(左移)?

右邊空出的位用 0 填補,高位左移溢出則舍棄該高位。左移1 位相當于該數乘以 2 ,但只 適用于該數左移時被溢出舍棄的高位中不包含1 的情況。
#includeint main(void){	int b=5,c,d;	c=b<<1;	d=b<<3;	printf("c=%d d=%d",c,d);//最終結果c=10,d=40	return 0; 

b<<左移n個單位即b乘以2^n

?6. >>(右移)

#includeint main(void){	int b=40,c,d;	c=b>>1;	d=b>>3;	printf("c=%d d=%d",c,d);//結果為c=20,d=5	return 0; 

b<<左移n個單位即b除以2^n

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

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

相關文章

  • 深入理解計算機系統》·深入淺出·快速理解第2章(3日完稿)

    摘要:寫在前面博客主頁的江湖背景的江湖背景歡迎關注點贊收藏留言本文由原創,首發首發時間年月日最新更新時間年月日堅持和努力一定能換來詩與遠方向未見花聞學習參考書籍深入理解計算機系統作者水平很有限,如果發現錯誤,請留言轟炸哦萬分感謝感謝感謝 ?寫在前面 ?博客主頁:kikoking的江湖背景?...

    YJNldm 評論0 收藏0
  • 深入理解虛擬機之類文件結構

    摘要:對象創建與訪問指令雖然類實例和數組都是對象,但虛擬機對類實例和數組的創建和操作使用了不同的字節碼指令。異常處理指令在虛擬機中,處理異常語句不是由字節碼指令來實現的,而是采用異常表的方式。 《深入理解Java虛擬機:JVM高級特性與最佳實踐(第二版》讀書筆記與常見面試題總結 本節常見面試題(推薦帶著問題閱讀,問題答案在文中都有提到): 簡單介紹一下Class類文件結構(常量池主要存放的是...

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

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

    iliyaku 評論0 收藏0
  • C語言基礎之操作符詳解

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

    snowell 評論0 收藏0

發表評論

0條評論

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