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

資訊專欄INFORMATION COLUMN

C語言 位運算符詳解 (使用二進(jìn)制實例深入學(xué)習(xí)理解位運算符使用原理)

1treeS / 1292人閱讀

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

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

目錄

1.&(按位與)

2. |(按位或)

3.^(按位抑或)

4.~(按位取反)

5.<<(左移)

6. >>(右移)

位( bit 是計算機(jī)中表示信息的最小單位,一般用 0和 1表示。位運算符是對其操作數(shù)按其二進(jìn)制形式逐位進(jìn)行運算。
注: 參加位運算的 操作數(shù)必須為整數(shù)。
接下來我們逐一講解位運算符的計算原理
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);  //結(jié)果c=1	return 0; 

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

?我們用二進(jìn)制來分析一下它的計算規(guī)則。

a=3? 二進(jìn)制為 0000 0011

b=5? 二進(jìn)制為 0000 0101


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

按位計算結(jié)果是0000 0001


所以最終c=a&b的結(jié)果為c=1

1)清零?

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

a=3? 二進(jìn)制為 0000 0011

b=0??二進(jìn)制為 0000 0000


a&b? 8個位的運算結(jié)果都為0

所以最終c=0

(2)?取某些指定位

假定a=5,二進(jìn)制為0000 0011

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

只需計算

0000 0101和1111 1111的結(jié)果

可得 c的二進(jìn)制為0000 0101

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

?(3)保位

?例如計算a&b要保a的哪一位,只需將b中對應(yīng)的位設(shè)為1,其余的位設(shè)為0.即可實現(xiàn)a的保位

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

對應(yīng)位之間按位或的計算 即? 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的結(jié)果=7	return 0; 

?c=a|b

a=3? 二進(jìn)制為 0000 0011

b=5? 二進(jìn)制為 0000 0101

計算結(jié)果為0000 0111 即c=7

3.^(按位抑或)

(計算原理)

對應(yīng)位置見的抑或運算,相同為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的結(jié)果為6	return 0; 

c=a^b

a=3? 二進(jìn)制為 0000 0011

b=5? 二進(jìn)制為 0000 0101

計算結(jié)果為0000 0110?即c=6

?4.~(按位取反)

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

b=5? b的二進(jìn)制為0000 0101

~b為1111 1010,用十進(jìn)制表示即為-6。

5.<<(左移)?

右邊空出的位用 0 填補(bǔ),高位左移溢出則舍棄該高位。左移1 位相當(dāng)于該數(shù)乘以 2 ,但只 適用于該數(shù)左移時被溢出舍棄的高位中不包含1 的情況。
#includeint main(void){	int b=5,c,d;	c=b<<1;	d=b<<3;	printf("c=%d d=%d",c,d);//最終結(jié)果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);//結(jié)果為c=20,d=5	return 0; 

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

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

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

相關(guān)文章

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

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

    YJNldm 評論0 收藏0
  • 深入理解虛擬機(jī)之類文件結(jié)構(gòu)

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

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

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

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

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

    snowell 評論0 收藏0

發(fā)表評論

0條評論

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