在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言中必須要掌握的位運算操作

汽車電子技術 ? 來源:嵌入式之入坑筆記 ? 作者: 嵌入式之入坑筆記 ? 2023-02-10 14:19 ? 次閱讀

C語言中,特別是在嵌入式的開發中,位操作是很常用的一個知識點,涉及到按位(bit)操作的地方也是很常見的。本文分享一些C語言中的位操作運算的基礎內容。

1、位與操作( & )

首先必須要區分位與(&)和邏輯與(&&),這兩者之間看上去就是多一個少一個的區別,但是最終運算結果卻是完全不同的。位與 & 的真值表:

pYYBAGPl4VmAedXFAAANBNq5WBA876.png

從上表可以看出,位與 & 的運算原則是:只有當參與運算的兩個對象都是真(true 或 1)時,得到的運算結果才是 true 或 1 ,其它的都為flase 或 0。

位與 & 其實就是把參與運算的兩個數先分別轉換為二進制,然后再相與得到運算之后的結果,如下:

比如:0x01&0x03=0x01//運算如下:
0x01:0 0 0 1
0x03:0 0 1 1  
結果: 0 0 0 1

2、位或操作 ( | )

首先必須要區分位與(|)和邏輯與(||),這兩者之間看上去就是多一個少一個的區別,但是最終運算結果卻是完全不同的。位與 | 的真值表:

pYYBAGPl4WeAU8O9AAALyRcZCaI242.png

從上表可以看出,位與 | 的運算原則是:只要當參與運算的兩個對象中有一個是真(true 或 1)時,得到的運算結果就是 true 或 1 ,只有兩個都是 0 才為 flase 或 0。位與 | 其實就是把參與運算的兩個數先分別轉換為二進制,然后再相與得到運算之后的結果,如下:

比如:0x01 & 0x03 = 0x03   // 運算如下: 
0x01:0 0 0 1 
0x03:0 0 1 1
結果: 0 0 1 1

3、位取反操作(~)

位取反就是把十六進制數先轉換為二進制,然后把對應的位取反(1 取反變為 0,0 取反變為1)。

比如:

比如:0x01 、 0x03  // 運算如下:
0x01:0 0 0 1        ~ 0x01:1 1 1 0   = 0x0D   

4、位異或操作( ^ )

位異或 ^ 的真值表:

pYYBAGPl4XeATPPQAAALgDXD2z0888.png

從上表可以看出,位異或 ^ 的運算原則是:當參與運算的兩個對象中有一個是真(true 或 1)時,得到的運算結果就是 true 或 1 ;如果兩個都是 0 就為 flase 或 0;兩個都是 1 就為 flase 或 0。

總而言之就是:相同為0,不同為1。

比如:0x01 ^ 0x03 = 0x02   // 運算如下:
0x01:0 0 0 1
0x03:0 0 1 1
結果: 0 0 1 0 

5、位移操作(<< 、>>)

位移操作中,左移幾位就在右邊補幾個0,右移幾位就在左邊補幾個0,超出數值范圍的部分則丟棄。如下:

poYBAGPl4YSAdsiIAAAfgPjHP7A547.png

6、位操作的實際運用

6.1、將特定位清零

如果想要把一個特定的數的某一個位清空(置零),使用位與 & 進行操作。比如:

pYYBAGPl4ZCAP9NTAAAjxJyHLHU136.png

6.2、將特定位置 1

如果想要把一個特定的數的某一個位清空(置零),使用位與 & 進行操作。比如:

poYBAGPl4ZqAPooeAAAjXd9ZosY196.png

6.3、特定位取反

如果想要把一個特定的數的某一個位取反,使用異或 ^ 進行操作。比如:

poYBAGPl4aeAGAssAAAfNQkHPzk279.png

注意:異或操作是相同為零,不同為1的運算原則!

6.4、獲取特定二進制位

如果想要獲取一個數中的某個或者某幾個特定的二進制位,可以參考如下操作:

pYYBAGPl4bGAGc4jAAAxd1IqoKI814.png
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5095

    文章

    19189

    瀏覽量

    307951
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137827
  • bit
    bit
    +關注

    關注

    0

    文章

    48

    瀏覽量

    32063
收藏 人收藏

    評論

    相關推薦

    C語言基礎知識(4)--運算

    C語言中運算符包括有算術運算符、關系運算符、邏輯運算符和
    的頭像 發表于 06-15 09:38 ?3956次閱讀

    C語言基礎(7)--運算

    程序中的所有數在計算機內存中都是以二進制的形式儲存的。運算就是直接對整數在內存中的二進制進行操作C
    的頭像 發表于 06-29 11:25 ?3319次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>基礎(7)--<b class='flag-5'>位</b><b class='flag-5'>運算</b>

    C語言中運算的使用技巧

    程序中的所有數在計算機內存中都是以二進制的形式儲存的。運算就是直接對整數在內存中的二進制進行操作
    發表于 08-10 09:17 ?508次閱讀

    C語言中賦值運算符詳解

    C語言中,賦值運算符用于將一個值賦給變量。
    發表于 08-18 16:38 ?2223次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>賦值<b class='flag-5'>運算</b>符詳解

    在單片機C語言中如何對變量的某一進行操作或賦值?

    在單片機C語言中如何對變量的某一進行操作或賦值?
    發表于 04-07 14:47

    單片機的C語言中操作用法

    單片機的C語言中操作用法
    發表于 08-17 15:04

    C語言的幾種操作運算

    在匯編語言中有直接對位進行操作的指令,如置、復位、取反、測試某一等,這對于硬件操作十分方便
    發表于 07-14 18:14

    C語言中三目運算符? :怎么使用?

    C語言中三目運算符? :怎么使用?
    發表于 11-02 09:23

    能不能在C語言中操作寄存器那樣直接操作一個字節的單獨一

    ?? 在C語言中通常操作只有真假兩種狀態的的數據時使用布爾bool變量比較多,如果需要同時觀察多個狀態,這時候選擇操作效率會更高,用一個字
    發表于 02-25 06:13

    C語言操作有哪幾種操作運算符呢

    C語言復習:一、操作:6種操作運算符二、define宏定義關鍵詞define是
    發表于 02-25 06:00

    C/C++語言運算詳解

    運算是指按二進制進行的運算。在系統軟件中,常常需要處理二進制的問題。C語言提供了6個
    發表于 12-14 16:36 ?4668次閱讀

    C語言運算+實例講解

    C語言運算有6種: &, | , ^(亦或), (右移)。 注意:參與運算的元素
    的頭像 發表于 03-22 16:00 ?8681次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>位</b><b class='flag-5'>運算</b>+實例講解

    C語言的幾種操作運算程序詳細說明

    在匯編語言中有直接對位進行操作的指令,如置、復位、取反、測試某一等,這對于硬件操作十分方便
    的頭像 發表于 07-18 12:00 ?3102次閱讀

    簡單介紹嵌入式C語言中常用的操作

    在嵌入式C語言中,使用操作程序有很好的可讀性。以下就簡單介紹以下常用的操作
    的頭像 發表于 02-23 10:36 ?1063次閱讀

    C語言中什么是關系運算

    C語言中,比較符稱為關系運算符,所謂關系運算就是比較運算,將兩個數值進行比較,判斷其比較的結果是否符合給的的條件。
    的頭像 發表于 03-09 10:47 ?2520次閱讀
    主站蜘蛛池模板: 免费人成网ww777kkk手机 | 四虎四虎 | 都市激情综合网 | 5252欧美在线观看 | 三级三级三级网站网址 | 黄色小视频日本 | 国产精品美女久久久久网 | 天天爽天天干 | 色偷偷综合 | 四虎884| 天天天天天天干 | 一级做a爱免费观看视频 | 国产精品亚洲一区二区三区在线播放 | 性色在线视频 | 黄视频网站在线观看 | 天堂网在线最新版官网 | 奇米第四狠狠777高清秒播 | 五月天婷婷在线观看高清 | 日本在线观看www | 夜夜爽夜夜操 | 美日韩一级 | 国产福利乳摇在线播放 | 天天爽天天爽天天片a久久网 | 日本色婷婷| 天天狠操 | 国产精品毛片久久久久久久 | 免费视频在线观看1 | 就去色播 | 免费视频亚洲 | 四虎国产永久在线精品免费观看 | 国产色婷婷精品综合在线手机播放 | 美女被异性狂揉下部羞羞视频 | 免费观看视频在线 | 女性一级全黄生活片免费看 | 午夜小视频男女在线观看 | 激情五月婷婷小说 | 色婷婷激情五月综合 | 国产成人综合网在线播放 | 好吊788gaoco| 色综合久久综合欧美综合网 | 日韩欧美一级 |