色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    關注

    5082

    文章

    19104

    瀏覽量

    304797
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136685
  • bit
    bit
    +關注

    關注

    0

    文章

    48

    瀏覽量

    32011
收藏 人收藏

    評論

    相關推薦

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

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

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

    程序中的所有數在計算機內存中都是以二進制的形式儲存的。運算就是直接對整數在內存中的二進制進行操作C
    的頭像 發表于 06-29 11:25 ?2996次閱讀
    <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 ?464次閱讀

    C語言中賦值運算符詳解

    C語言中,賦值運算符用于將一個值賦給變量。
    發表于 08-18 16:38 ?1960次閱讀
    <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 ?4596次閱讀

    C語言運算+實例講解

    C語言運算有6種: &, | , ^(亦或), (右移)。 注意:參與運算的元素
    的頭像 發表于 03-22 16:00 ?8604次閱讀
    <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 ?3059次閱讀

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

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

    C語言中什么是關系運算

    C語言中,比較符稱為關系運算符,所謂關系運算就是比較運算,將兩個數值進行比較,判斷其比較的結果是否符合給的的條件。
    的頭像 發表于 03-09 10:47 ?2426次閱讀
    主站蜘蛛池模板: 娇喘嗯嗯 轻点啊视频福利| 韩国伦理电影在线神马网| 大中国免费视频大全在线观看| 99在线观看免费视频| 成人毛片100部免费看| 国产不卡无码高清视频| 国产睡熟迷奷系列精品| 精品含羞草免费视频观看| 伦理79电影网在线观看| 欧美日韩黄色| 我要干av| 尤物国产在线精品三区| 99无码熟妇丰满人妻啪啪 | 亚洲国产在线视频精品 | 天天噜日日噜夜夜噜| 亚洲精品色播一区二区| 2020国产成人精品免费视频| 9久久免费国产精品特黄| 国产成人高清精品免费5388密| 狠很橹快播| 亚洲1区2区3区精华液| 尤物久久99国产综合精品| 成人免费视频在线看| 果冻传媒MV免费播放在线观看| 美女图片131亚洲午夜| 天天久久狠狠色综合| 伊人影院综合网| 俄罗斯bbbb| 久久精选视频| 涩里番app黄版网站| 伊人青青草| 跪趴式啪啪GIF动态图27报| 久久国产成人午夜AV影院无码| 秋霞电影网午夜一级鲁丝片| 亚洲国产精品VA在线看黑人| 97亚洲狠狠色综合久久位| 国产偷国产偷亚洲高清app| 女教师二十三歳| 亚洲人成网77777色在线播放| JIZJIZJIZ 日本老师水多| 花蝴蝶在线高清视频观看免费播放|