21.《C語言》——【位操作符】


🌻開場語

親愛的讀者,大家好!我是一名正在學習編程的高校生。在這個博客里,我將和大家一起探討編程技巧、分享實用工具,并交流學習心得。希望通過我的博客,你能學到有用的知識,提高自己的技能,成為一名優秀的程序員。如果你有任何疑問或建議,請隨時在評論區留言,讓我們一起成長進步!現在,讓我們開始這場知識之旅吧!


在這里插入圖片描述
個人主頁:FEN03
文章專欄:C語言


文章目錄

  • 🌻開場語
  • 🌻前言
  • 🌻位操作符
    • 1. 🌹&(按位與)
    • 2. 🌹| (按位或)
    • 3. 🌹^(按位異或)
    • 4. 🌹~(按位取反)
  • 🌻總結
  • 🌻結束語


🌻前言

本文章,將會逐一介紹什么是位操作符,如何去用位操作符。文章內容僅是個人學習見解,如有錯誤,還請各位大佬指出!


🌻位操作符

位操作符有4種:

  1. &(按位與)
  2. | (按位或)
  3. ^(按位異或)
  4. ~(按位取反)

位操作符都是對二進制位進行操作的
注意:位操作符只能用于整數


1. 🌹&(按位與)

按位與是一個雙目運算符,按位與是對二進制位進行操作,那么它的操作規則是:對位的二進制位,有0為0,相同為1則為1

例子1:

#include<stdio.h>
int main()
{int a = -3; int b = 6;  int c = a & b; printf("%d\n", c); return 0; 
}

運行結果:

在這里插入圖片描述

為什么會得到4呢?
解析:

  1. 因為是對二進制位操作的,所以我們需要寫出數值的二進制位,-3的二進制位是:
    在這里插入圖片描述

  2. 6的二進制位:在這里插入圖片描述

  3. 進行按位與: 在這里插入圖片描述

最終的結果得到:4


2. 🌹| (按位或)

按位或是一個雙目運算符,是對二進制位操作,規則是:對位的二進制位,有1為1,相同0為0

例子1:

#include<stdio.h>
int main()
{int a = -6;  int b = 3;  int c = a | b;  printf("%d\n", c); return 0;
}

運算結果:

在這里插入圖片描述

是怎么得到5呢?
解析:

  1. 首先,我們需要寫出數值的二進制形式,-6的二進制:
    在這里插入圖片描述
  2. 然后寫出3的二進制:
    在這里插入圖片描述
  3. 進行按位或:
    在這里插入圖片描述
    這樣最終的結果就能夠得到:-5

3. 🌹^(按位異或)

按位異或也是雙目運算符,也是對二進制位操作,規則是:相同為0,相異為1

例子1:

#include<stdio.h>
int main()
{int a = -4; int b = 6; int c = a ^ b; printf("%d\n", c);return 0;
}

運行結果:

在這里插入圖片描述

為什么能夠得到:-6
解析:

  1. 寫出-4的二進制位:
    在這里插入圖片描述
  2. 寫出6的二進制:
    在這里插入圖片描述
  3. 進行按位異或:
    在這里插入圖片描述

最終得到的值是:-6


對于按位異或,有一個知識補充:

例子1:

#include<stdio.h>
int main()
{int a1 = 1;  int a2 = 2; int a3 = 3; int a4 = 4;int b = 0;int c1 = a1 ^ b;  int c2 = a2 ^ b;  int c3 = a3 ^ b;  int c4 = a4 ^ b; printf("%d\n", c1);  printf("%d\n", c2);  printf("%d\n", c3);  printf("%d\n", c4);  return 0; 
}

運行結果:

在這里插入圖片描述

看結果,我們可以得出,n ^ 0 = n ,也就是一個數如果按位異或0,得到的結果是本身。


例子2:

#include<stdio.h>
int main()
{int a = 5;int b = a ^ a;printf("%d\n", b); int a1 = 6;int b1 = a1 ^ a1; printf("%d\n", b1); int a2 = 4;int b2 = a2 ^ a2;printf("%d\n", b2); return 0; 
}

運行結果:

在這里插入圖片描述

我們可以得出結論:n ^ n = 0,也就是一個數如果按位異或本身,得到的結果是0


4. 🌹~(按位取反)

按位取反是單目運算符,同樣的是對二進制位進行操作,規則是:0為1,1為0

例子1:

#include<stdio.h>
int main()
{int a = 8;  int b = ~a;    printf("%d\n", b);  return 0; 
}

運算結果:

在這里插入圖片描述

是怎么得到:-9 的呢?
解析:

  1. 寫出8的二進制:
    在這里插入圖片描述
  2. 進行按位取反:
    在這里插入圖片描述

最終的結果就是:-9


🌻總結

  1. &(按位與),|(按位或),^(按位異或),這三個都是雙目運算符,操作數是2個。
  2. ~(按位取反)是單目運算符,操作數是1個。
  3. 這些操作符都需要了解規則,其中按位異或復雜一點,需要多了解。

🌻結束語

非常感謝您花時間閱讀我的博客,希望我的分享能為您帶來收獲。如果您對本文有任何想法或疑問,歡迎在評論區留言交流。如果您喜歡我的博客,請繼續關注,我會定期更新更多精彩內容。最后,別忘了行動起來的力量,讓我們一起實踐這些方法,見證自己的成長和進步!

再見,祝您生活愉快!

如有錯誤,或者疑惑,還請評論區留言,或者私信即可,感謝支持!


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/39411.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/39411.shtml
英文地址,請注明出處:http://en.pswp.cn/web/39411.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

今天不看文章,明天變垃圾(明天收費)-----字節數據分析發展過程中所遭遇的挑戰

字節數據分析發展過程中所遭遇的挑戰 三個核心議題&#xff1a; 海量數據分析性能&#xff1a;會議指出Spark分析性能不足成為了一個顯著問題&#xff0c;尤其是在需要毫秒級響應的業務場景中。實時導入與查詢能力&#xff1a;目前Kylin只能以T1的形式提供分析服務&#xff0…

藍牙資訊|蘋果Apple Pencil新專利:用筆套擴展傳感器 / 續航等模塊化方案

根據美國商標和專利局最新公示的清單&#xff0c;蘋果公司獲得了一項 Apple Pencil 的專利&#xff0c;探索了模塊化設計方案&#xff0c;用戶未來可以根據自身需求或者使用場景&#xff0c;隨心更換 Pencil 的模塊&#xff0c;達到不同的效果。 蘋果在專利中表示筆套內置傳感器…

Docker實戰教程(一)

文章目錄 Docker實戰教程一、Docker簡介二、Docker安裝過程1. Windows上安裝Docker2. Linux上安裝Docker三、Docker基本概念四、Docker常用命令五、Docker常見應用場景六、總結Docker實戰教程 Docker是一種開源的容器化平臺,能夠自動化應用程序的部署、管理和隔離。它使得開發…

jQuery UI 簡介

jQuery UI 簡介 1. 引言 jQuery UI 是一個建立在 jQuery JavaScript 庫之上的開源小部件和交互庫,旨在創建高度交互的網頁。它提供了一系列預先設計好的小部件,如拖放、排序、對話框、工具提示等,以及用于構建復雜用戶界面的交互方法。jQuery UI 的設計目標是簡化 HTML 文…

圖書電商引入實在Agent:自動化運營提效80%,節省人天1000+

某知名教輔圖書品牌深耕中小學教輔圖書領域&#xff0c;是中國最具影響力的教育出版策劃與發行集團之一&#xff0c;以豐富的圖書品類&#xff0c;滿足了小學、初中、高中各年齡段讀者多元化的閱讀需求。 2023年&#xff0c;該品牌在運營、客服等多部門超60個場景中部署實在Ag…

2024高考作文題“人工智能”

今年開年到現在&#xff0c;明顯的感受就是&#xff0c;咨詢人工智能機器人的客戶比往年更多了。什么原因&#xff0c;是因為人工成本太高了&#xff0c;今年整體經濟環境變差&#xff0c;招不起人&#xff0c;所以想用AI機器人來降低用工成本嗎&#xff1f; 還是說因為語音線路…

嵌入式Linux:ARM體系簡介

目錄 1. 體系結構 2. 指令集 3. 工作狀態 4. 工作模式 5. 寄存器 6. 異常與中斷 其他 DOS命令 Linux 命令 1. 體系結構 馮-諾依曼體系結構是把數據與指令都 存放在同一存儲區域,取數據與取指令利用同一數據總線,結構簡單,但速度較慢,取址不能同時取數據。 哈弗結構…

項目進度管理(信息系統項目管理師)

定義活動的輸出&#xff1a;活動清單、活動屬性、里程碑清單定義活動的輸入包括進度管理計劃、范圍基準、事業環境因素、組織過程資產定義活動的工具與技術包括專家判斷、分解、滾動式規劃、會議分解是一種把項目范圍和項目可交付成果逐步劃分為更小、更便于管理的組成部分的技…

鴻蒙開發過程遇到的坑

LazyForEach鍵值設置應該為 (item: FreelyPurchaseProductDataModel) > JSON.stringify(item) 否則列表修改了數量不會刷新

銀湖資本在中國設立公司運營點,全球投資巨頭的新篇章!

近日&#xff0c;全球知名私募股權投資公司銀湖資本宣布在中國設立公司運營點。一點是銀湖資本在國內安置了兩個辦事營業點&#xff0c;一個在黑龍江&#xff0c;一個在廣州等一線城市。這一舉動標志著銀湖資本在全球范圍內的擴展進入了新的階段&#xff0c;同時也展示了其對中…

SerialportToTcp①

窗體 效果&#xff1a;串口和網口旁邊的是panel當客戶端或者服務器發送消息的時候會閃爍&#xff0c;下面的的textbox當接收到接受或者發送的數據會增加數量&#xff0c;心跳機制單選框可以開關&#xff0c;可設置心跳間隔和內容&#xff0c;重置按鈕重置串口數據&#xff0c;…

leetcode 404周賽 合并兩棵樹后最小直徑「圖論」「dp」

3203. 合并兩棵樹后的最小直徑 題目描述&#xff1a; 題如其意&#xff0c;給你兩棵樹&#xff0c;你可以從兩棵樹中各挑一個點出來&#xff0c;連一條邊&#xff0c;形成一個新的樹&#xff0c;問你最小直徑是多少 1 < n , m < 1 0 5 1 < n, m < 10^5 1<n,…

PDM系統中物料分類與編碼規則生成方案

在企業管理軟件中&#xff0c;PDM系統是企業管理的前端軟件&#xff0c;用于管理研發圖紙、BOM等數據&#xff0c;然后生成相關物料表或BOM&#xff0c;遞交給后端ERP系統進行生產管理。在PDM系統中&#xff0c;有兩種方式可以生成物料編碼。 1第一種是用戶可以通過軟件接口將…

基于selenium+python實現自動化測試

Selenium 是一個用于自動化Web應用程序測試的工具包&#xff0c;它提供了一套API&#xff0c;允許開發者編寫腳本來模擬用戶與瀏覽器的交互。這些API可以控制瀏覽器執行各種操作&#xff0c;如導航、點擊、輸入文本、滾動頁面等。使用Selenium結合Python進行自動化測試是一個常…

汽車免拆診斷案例 | 2021款路虎攬勝運動版車遙控及一鍵起動功能失效

故障現象 一輛2021款路虎攬勝運動版車&#xff0c;搭載AJ20-P6H3L發動機&#xff0c;累計行駛里程約為2.5萬km。車主反映&#xff0c;使用智能鑰匙無法解鎖車門&#xff0c;使用機械鑰匙打開車門&#xff0c;進入車內&#xff0c;發現一鍵起動功能也失效&#xff1b;根據組合…

將excel表格轉換為element table(下)

在‘將excel表格轉換為element table(上)’我們把excel 轉換后通過數據重構綁定到了element table上&#xff0c;現在要做的就是根據源文件進行行列進行合并操作 先看看最終處理的結果 這里在一步步分析實現步驟。 先分析一下合并的邏輯 大致思路理理如上。 思路有了接下來…

回溯法:生成一個字符串的所有排列組合

問題&#xff1a;字符串abcd怎樣獲取abcd、acbd、acdb、adbc、adcb、bacd、bcad、bdac、bdca、cabd、cdba、cadb、cbda等&#xff0c;所有排列。 使用回溯法來生成一個字符串的所有排列 import java.util.ArrayList; import java.util.List;public class Permutations {publi…

雷諾RENAULT EDI 需求分析

雷諾&#xff08;Renault&#xff09;是一家法國汽車制造公司&#xff0c;成立于1899年。作為世界知名的汽車品牌&#xff0c;雷諾生產各種類型的車輛&#xff0c;包括乘用車、商用車和電動車。公司總部位于法國布洛涅-比揚古。雷諾以其創新和高質量的產品在全球市場享有盛譽&a…

3-數據提取方法1(json)(6節課學會爬蟲)

3-數據提取方法1&#xff08;json&#xff09;&#xff08;6節課學會爬蟲&#xff09; 1&#xff0c;Json2&#xff0c;哪里會返回json的數據&#xff08;值得嘗試的操作&#xff09;3&#xff0c;Json字符串轉換成字典或python類型進行數據提取&#xff08;1&#xff09;Json.…

農夫山泉:玩一個“彎道超車”的“新游戲”

今年夏天&#xff0c;有一款產品的爆火&#xff0c;仿佛上演了一出“歐亨利式”的好戲&#xff0c;既出人意料又在情理之中。它就是農夫山泉的“冰杯”。 在小紅書搜索關鍵詞“冰杯”后&#xff0c;我們會發現&#xff0c;相關筆記達到4萬篇&#xff0c;相關商品超過8000件&am…