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