摘要:位運算符是對其操作數(shù)按其二進(jìn)制形式逐位進(jìn)行運算。接下來我們逐一講解位運算符的計算原理按位與用于清零取某些指定位保位的計算原理,,結(jié)果上面使用按位與的一段程序運行結(jié)果為我們用二進(jìn)制來分析一下它的計算規(guī)則。
C語言中位運算符共有六種
目錄
2. |(按位或)
#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.<<(左移)?
#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)注點贊收藏留言本文由原創(chuàng),首發(fā)首發(fā)時間年月日最新更新時間年月日堅持和努力一定能換來詩與遠(yuǎn)方向未見花聞學(xué)習(xí)參考書籍深入理解計算機(jī)系統(tǒng)作者水平很有限,如果發(fā)現(xiàn)錯誤,請留言轟炸哦萬分感謝感謝感謝 ?寫在前面 ?博客主頁:kikoking的江湖背景?...
摘要:對象創(chuàng)建與訪問指令雖然類實例和數(shù)組都是對象,但虛擬機(jī)對類實例和數(shù)組的創(chuàng)建和操作使用了不同的字節(jié)碼指令。異常處理指令在虛擬機(jī)中,處理異常語句不是由字節(jié)碼指令來實現(xiàn)的,而是采用異常表的方式。 《深入理解Java虛擬機(jī):JVM高級特性與最佳實踐(第二版》讀書筆記與常見面試題總結(jié) 本節(jié)常見面試題(推薦帶著問題閱讀,問題答案在文中都有提到): 簡單介紹一下Class類文件結(jié)構(gòu)(常量池主要存放的是...
摘要:今天小玄為大家?guī)碚Z言的操作符相關(guān)的講解,希望大家能通過這篇文章對相關(guān)操作符有更加深入的理解。操作符的兩個操作數(shù)必須為整數(shù)。操作符的優(yōu)先級操作符的結(jié)合性是否控制求值順序。兩個相鄰的操作符先執(zhí)行哪個取決于他們的優(yōu)先級。 ????????今天小玄為大家?guī)鞢語言的操作符相關(guān)的講解,希望大家能通過...
摘要:語言基礎(chǔ)之操作符詳解操作符的分類算術(shù)操作符移位操作符位操作符邏輯操作符逗號表達(dá)式表達(dá)式求值隱式類型轉(zhuǎn)換算術(shù)轉(zhuǎn)換操作符的屬性今天就帶各位大佬來了解一波語言的操作符。 ...
閱讀 3681·2021-11-24 09:39
閱讀 1293·2021-09-30 09:48
閱讀 3278·2021-09-09 11:51
閱讀 2903·2021-09-08 10:41
閱讀 1341·2019-08-30 14:06
閱讀 2812·2019-08-30 14:01
閱讀 884·2019-08-29 17:11
閱讀 3185·2019-08-29 15:37