精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

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

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

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

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

常見的二進制位的變換操作

功能 示例 位運算
去掉最后一位 (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
從右數第K位變成1 (101001-->101101,K=3) x|(1<<(K-1))
從右數第K位變成0 (101101-->101001,K=3) x&(~(1<<(K-1)))
從右數第K位取反 (101001-->101101,K=3) x^(1<<(K-1)
取末三位 (101101-->101) x&7
取末K位 (101101-->1101,K=4) x&15
取右數第K位 (1101101-->1,K=4) (x>>(K-1))&1
把末K位變成1 (101001-->101111,K=4) x|(1<
把末K位取反 (101001-->100110,K=4) x^(1<
把右邊連續的1變成0 (100101111->100100000) x&(x+1)
把右起第一個0變成1 (100101111->100111111) x|(x+1)
把右邊連續的0變成1 (11011000->11011111) x|(x-1)
取右邊連續的1 (11011111->11111) (x^(x+1))>>1
去掉右起第一個1的左邊 (100101000->1000) x&(-x)
判斷第7位是否為1 if(x&0x40){……}
字節讀取 (x>>0)&0x000000FF 獲取第0個字節
字節讀取 (x>>8)&0x000000FF 獲取第1個字節
字節讀取 (x>>16)&0x000000FF 獲取第2個字節
判斷奇偶數 if(x&1==1){……}
判斷兩個數是否異號 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);






審核編輯:劉清

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

    關注

    5068

    文章

    19019

    瀏覽量

    303292
  • C語言
    +關注

    關注

    180

    文章

    7598

    瀏覽量

    136197
  • 位操作
    +關注

    關注

    1

    文章

    12

    瀏覽量

    8549

原文標題:位操作運算

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

收藏 人收藏

    評論

    相關推薦

    嵌入式入門】C語言常用操作相關總結

    哈嘍,大家好,我是一名從事物聯網嵌入式培訓工作的老師,現在為大家總結一下C語言常用操作。希望
    發表于 08-27 12:01

    C語言入門書籍《嵌入式Linux C語言程序設計基礎教程》全本下載!!

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

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

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

    嵌入式C語言C語言的區別

    嵌入式C語言C語言的區別:最常用的系統編程語言
    發表于 10-27 06:52

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

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

    嵌入式SQL語言概述

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

    嵌入式系統C語言操作的移植與優化

    嵌入式系統C語言操作的移植與優化   單片機的應用越來越廣泛,種類也越來越多。由于嵌入式
    發表于 03-29 15:15 ?1075次閱讀

    單片機C語言中常用到的關鍵字及數據類型

    單片機C語言中常用到的關鍵字及數據類型。
    發表于 11-03 10:57 ?13次下載

    嵌入式C實現延時程序的不同變量的區別 幾種Linux嵌入式開發環境的簡單介紹

    嵌入式C實現延時程序的不同變量的區別 幾種Linux嵌入式開發環境的簡單介紹 ARM嵌入式開發基
    發表于 04-14 07:24 ?1622次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>C</b>實現延時程序的不同變量的區別 幾種Linux<b class='flag-5'>嵌入式</b>開發環境的<b class='flag-5'>簡單</b><b class='flag-5'>介紹</b>

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

    本文檔的主要內容詳細介紹的是嵌入式C語言的5個操作筆記資料說明。
    發表于 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>筆記資料說明

    嵌入式系統常用C語言基本語法概要

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

    標準c語言嵌入式,嵌入式C語言C語言的區別

    嵌入式C語言C語言的區別:最常用的系統編程語言
    發表于 10-20 14:06 ?6次下載
    標準<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>的區別

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

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

    嵌入式C語言中堆和棧的區別

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

    嵌入式C操作的應用

    嵌入式運算是嵌入式系統中常用的優化技巧之一,它可以通過位運算操作來實現一些常見的數學運算、邏輯運算等,從而提高程序的執行效率。
    發表于 05-20 16:52 ?678次閱讀