0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

硬件會 ? 來源:硬件會 ? 2023-02-23 10:36 ? 次閱讀

嵌入式C語言中,使用位操作程序有很好的可讀性。以下就簡單介紹以下常用的位操作。

463e9b8a-b2c7-11ed-bfe3-dac502259ad0.png

常見的二進(jìn)制位的變換操作

功能 示例 位運算
去掉最后一位 (101101-->10110) x>>1
在最后加一個0 (101101-->1011010) x<<1
在最后加一個1 (101101-->1011011) (x<<1)+1 或?(x<<1)|1?
把最后一位變成1 (101100-->101101) x|1
把最后一位變成0 (101101-->101100) x|1-1
最后一位取反 (101101-->101100) x^1
從右數(shù)第K位變成1 (101001-->101101,K=3) x|(1<<(K-1))
從右數(shù)第K位變成0 (101101-->101001,K=3) x&(~(1<<(K-1)))
從右數(shù)第K位取反 (101001-->101101,K=3) x^(1<<(K-1)
取末三位 (101101-->101) x&7
取末K位 (101101-->1101,K=4) x&15
取右數(shù)第K位 (1101101-->1,K=4) (x>>(K-1))&1
把末K位變成1 (101001-->101111,K=4) x|(1<
把末K位取反 (101001-->100110,K=4) x^(1<
把右邊連續(xù)的1變成0 (100101111->100100000) x&(x+1)
把右起第一個0變成1 (100101111->100111111) x|(x+1)
把右邊連續(xù)的0變成1 (11011000->11011111) x|(x-1)
取右邊連續(xù)的1 (11011111->11111) (x^(x+1))>>1
去掉右起第一個1的左邊 (100101000->1000) x&(-x)
判斷第7位是否為1 if(x&0x40){……}
字節(jié)讀取 (x>>0)&0x000000FF 獲取第0個字節(jié)
字節(jié)讀取 (x>>8)&0x000000FF 獲取第1個字節(jié)
字節(jié)讀取 (x>>16)&0x000000FF 獲取第2個字節(jié)
判斷奇偶數(shù) if(x&1==1){……}
判斷兩個數(shù)是否異號 int x = -1, y = 2;
bool f = ((x ^ y) < 0); // true
int x = 3, y = 2;
bool f = ((x ^ y) < 0); // false
求2的n次方 1<
高低位交換 unsigned short a = 34520;
a = (a >> 8) | (a << 8);






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5052

    文章

    18909

    瀏覽量

    300732
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7581

    瀏覽量

    135552
  • 位操作
    +關(guān)注

    關(guān)注

    1

    文章

    12

    瀏覽量

    8537

原文標(biāo)題:位操作運算

文章出處:【微信號:硬件會,微信公眾號:硬件會】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式入門】C語言常用操作相關(guān)總結(jié)

    哈嘍,大家好,我是一名從事物聯(lián)網(wǎng)嵌入式培訓(xùn)工作的老師,現(xiàn)在為大家總結(jié)一下C語言常用操作。希望
    發(fā)表于 08-27 12:01

    C語言入門書籍《嵌入式Linux C語言程序設(shè)計基礎(chǔ)教程》全本下載??!

    嵌入式專業(yè)的C語言教材。全書共11章,第1章介紹嵌入式Linux下常用
    發(fā)表于 03-02 17:09

    c語言中常用的宏定義有哪些?

    c語言中常用的宏定義有哪些?
    發(fā)表于 04-28 06:01

    嵌入式C語言C語言的區(qū)別

    嵌入式C語言C語言的區(qū)別:最常用的系統(tǒng)編程語言
    發(fā)表于 10-27 06:52

    嵌入式C語言中常見不常用的語法有哪些

    嵌入式C語言中常見不常用的語法1. 不定參數(shù)需要包含頭文件#include "stdarg.h"頭文件里主要包括一個變量類型va_list,三個函數(shù)va_start,va_arg
    發(fā)表于 12-15 06:34

    嵌入式SQL語言概述

    的SQL與前面介紹的交互SQL有一些不同的操作方式下面以嵌入 C 語言為例,exec 關(guān)鍵字是
    發(fā)表于 12-21 06:55

    嵌入式系統(tǒng)C語言操作的移植與優(yōu)化

    嵌入式系統(tǒng)C語言操作的移植與優(yōu)化   單片機(jī)的應(yīng)用越來越廣泛,種類也越來越多。由于嵌入式
    發(fā)表于 03-29 15:15 ?1051次閱讀

    單片機(jī)C語言中常用到的關(guān)鍵字及數(shù)據(jù)類型

    單片機(jī)C語言中常用到的關(guān)鍵字及數(shù)據(jù)類型。
    發(fā)表于 11-03 10:57 ?13次下載

    嵌入式C實現(xiàn)延時程序的不同變量的區(qū)別 幾種Linux嵌入式開發(fā)環(huán)境的簡單介紹

    嵌入式C實現(xiàn)延時程序的不同變量的區(qū)別 幾種Linux嵌入式開發(fā)環(huán)境的簡單介紹 ARM嵌入式開發(fā)基
    發(fā)表于 04-14 07:24 ?1599次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>C</b>實現(xiàn)延時程序的不同變量的區(qū)別 幾種Linux<b class='flag-5'>嵌入式</b>開發(fā)環(huán)境的<b class='flag-5'>簡單</b><b class='flag-5'>介紹</b>

    嵌入式C語言的5個操作筆記資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是嵌入式C語言的5個操作筆記資料說明。
    發(fā)表于 05-08 18:19 ?3次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>的5個<b class='flag-5'>位</b><b class='flag-5'>操作</b>筆記資料說明

    嵌入式系統(tǒng)常用C語言基本語法概要

    嵌入式系統(tǒng)常用C語言基本語法概要
    發(fā)表于 10-20 12:51 ?6次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)<b class='flag-5'>常用</b>的<b class='flag-5'>C</b><b class='flag-5'>語言</b>基本語法概要

    標(biāo)準(zhǔn)c語言嵌入式,嵌入式C語言C語言的區(qū)別

    嵌入式C語言C語言的區(qū)別:最常用的系統(tǒng)編程語言
    發(fā)表于 10-20 14:06 ?6次下載
    標(biāo)準(zhǔn)<b class='flag-5'>c</b><b class='flag-5'>語言</b>與<b class='flag-5'>嵌入式</b>,<b class='flag-5'>嵌入式</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>與<b class='flag-5'>C</b><b class='flag-5'>語言</b>的區(qū)別

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

    C語言中,特別是在嵌入式的開發(fā)中,操作是很常用的一個知識點,涉及到按
    的頭像 發(fā)表于 02-10 14:19 ?1240次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>必須要掌握的<b class='flag-5'>位</b>運算<b class='flag-5'>操作</b>

    嵌入式C語言中堆和棧的區(qū)別

    嵌入式C語言中,堆和棧都是用來存儲變量的內(nèi)存區(qū)域,但它們在存儲和使用變量方面有很大的區(qū)別。
    的頭像 發(fā)表于 04-14 11:45 ?1268次閱讀

    嵌入式C操作的應(yīng)用

    嵌入式運算是嵌入式系統(tǒng)中常用的優(yōu)化技巧之一,它可以通過位運算操作來實現(xiàn)一些常見的數(shù)學(xué)運算、邏輯運算等,從而提高程序的執(zhí)行效率。
    發(fā)表于 05-20 16:52 ?634次閱讀