那曲檬骨新材料有限公司

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

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

3天內不再提示

四種方法教你判斷設備的字節序

學益得智能硬件 ? 來源:學益得智能硬件 ? 2024-11-28 10:47 ? 次閱讀

如何判斷設備的字節序,提供 4 種方法給大家參考。

首先就是從概念入手。

所謂小端字節序,高字節存放在高地址,低字節存放在低地址;大端字節序反過來。

定義一個無符號 short 類型,初始化成 0x0102,定義一個 char 類型指針,保存 num 的地址。

int main()
{
    unsigned short num = 0x0102;


    unsigned char *p = (unsigned char *)#


    if (p[0] == 0x02)
        printf("小端字節序
");
    else if (p[0] == 0x01)
        printf("大端字節序
");
        
return 0;
}

如果 p[0] 是 0x02,說明低地址保存了低字節,設備就是小端。

如果 p[0] 是 0x01,說明低地址保存了高字節,設備就是大端。

第二個,使用聯合體。

聯合體的特點是所有成員共享同一塊內存。

union Test
{
    char p[2];
    short val;
};

在這個聯合體中,char 類型的數組和 short 類型變量占用了同一塊內存,數組的第 0 個元素一定存放在低地址。

如果 p[0] 保存的是 0x02,說明低地址保存了低字節,設備是小端。反之,是大端。

int main()
{
    union Test t;
    t.val = 0x0102;
    
    if (t.p[0] == 0x02)
        printf("小端字節序
");
    else if (t.p[0] == 0x01)
        printf("大端字節序
");
        
return 0;
}

這種方法跟第一種差不多。

第三個,通過宏來判斷。

比如在 Linux 系統中,包含頭文件,使用 BYTE_ORDER 就能直觀的看出字節序。

#include 


int main()
{
    if (__BYTE_ORDER == __LITTLE_ENDIAN)
        printf("小端字節序
");
    else if (__BYTE_ORDER == __BIG_ENDIAN)
        printf("大端字節序
");

return 0;
}

第四個,使用結構體位域。

這個方法同樣是從概念入手,判斷 p[0] 這個低地址保存的是低字節還是高字節。

#include 


struct Test
{
    unsigned int a : 8;
    unsigned int b : 8;
    unsigned int c : 16;
};


int main()
{
    struct Test t = {0x01, 0x02, 0x0304};
    unsigned char *p = (unsigned char *)&t;


    if (p[0] == 0x01)
        printf("小端字節序
");
    else if (p[0] == 0x04)
        printf("大端字節序
");


    return 0;
}

不過這個方法不太推薦,位域的具體布局取決于編譯器,跟環境有關,所以這種方法,參考下就行。

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

    關注

    2

    文章

    4543

    瀏覽量

    70858
  • 字節
    +關注

    關注

    0

    文章

    41

    瀏覽量

    13806

原文標題:四種方法判斷設備的字節序

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

收藏 人收藏

    評論

    相關推薦

    被問爆的四種供電方式,來啦~

    4G模組的外部電源供電設計十分重要,對系統穩定、射頻性能都有直接影響。 常見的物聯網應用場景下,供電方式有四種: LDO供電方式 DCDC供電方式 鋰電池供電以及充電方式 不可充電鋰亞/鋰錳電池供電
    的頭像 發表于 12-30 15:40 ?306次閱讀
    被問爆的<b class='flag-5'>四種</b>供電方式,來啦~

    DAC61404 SPI應該是四種模式中的哪種?

    DAC61404 SPI應該是四種模式中的哪種?
    發表于 11-27 06:18

    電氣設備四種工作狀態

    在供配電系統中,電器設備的狀態管理是確保電力系統穩定運行和用電安全的關鍵。根據電氣設備的工作條件和安全要求,通常將電氣設備備的狀態分為四種不同的狀態:運行狀態、熱備用狀態、冷備用狀態和
    的頭像 發表于 10-04 11:15 ?3112次閱讀

    反饋的判斷方法有哪些

    各種類型的電子電路。 二、正反饋與負反饋的判斷 采用瞬時極性法來判斷正反饋與負反饋是一常用的方法。具體來說,如果反饋信號與原輸入信號極性相同,則是正反饋;如果反饋信號與原輸入信號極性
    的頭像 發表于 09-20 17:41 ?1895次閱讀
    反饋的<b class='flag-5'>判斷</b><b class='flag-5'>方法</b>有哪些

    雙軸測徑儀的四種樣式!

    儀設計了四種外觀樣式。 45°角布置的開口測徑儀 這個樣式的雙軸測徑儀是目前大部分產線所使用的,樣式簡單大氣。用于外徑及橢圓度尺寸的檢測。 45°角布置的閉口測徑儀 該樣式的雙軸測徑儀將上面的開口閉合
    發表于 08-27 17:42

    濾波電路的四種類型是什么

    濾波電路是電子電路中非常重要的一部分,它主要用于對信號進行頻率選擇,即允許特定頻率范圍內的信號通過,而阻止其他頻率的信號。濾波電路根據其特性可以分為四種基本類型:低通濾波器(Low-Pass
    的頭像 發表于 08-08 16:25 ?3495次閱讀

    負反饋的四種類型是什么

    負反饋是電子系統中常用的一技術,它通過將系統輸出的一部分信號以某種方式反饋到輸入端,以減小輸出信號與期望信號之間的差異,從而提高系統的穩定性和性能。負反饋主要分為四種類型:電壓串聯負反饋、電壓并聯負反饋、電流串聯負反饋和電流并聯負反饋。
    的頭像 發表于 08-08 16:15 ?4867次閱讀

    pwm脈寬調制的四種方法有哪些

    于電機控制、LED調光、音頻處理等領域。以下是四種常見的PWM脈寬調制方法: 固定頻率PWM(Fixed-Frequency PWM) 固定頻率PWM是一最基本的PWM調制方法。在這
    的頭像 發表于 08-08 15:10 ?1709次閱讀

    負反饋的四種類型及判斷方法

    類型及其判斷方法。 一、負反饋的四種類型 比例負反饋 比例負反饋是指系統輸出與輸入之間的反饋關系是線性的,即輸出的變化與輸入的變化成正比。在比例負反饋中,當系統輸出增加時,輸入會相應減少,反之亦然。這種反饋機制有
    的頭像 發表于 08-02 11:01 ?2939次閱讀

    受控源四種類型及表示方法

    受控源是電子電路中的一特殊元件,它具有一個或多個控制量,其輸出電壓或電流與控制量之間存在一定的函數關系。受控源有四種基本類型:電壓控制電壓源(VCVS)、電流控制電壓源(CCVS)、電壓控制電流源
    的頭像 發表于 07-29 15:15 ?6668次閱讀

    簡述四種基本觸發器及其功能

    在數字電路設計中,觸發器是一基本且重要的存儲元件,用于存儲二進制信息(即0和1)。根據功能和應用場景的不同,觸發器可以分為多種類型,其中四種基本觸發器包括RS觸發器、JK觸發器、D觸發器和T觸發器。以下是對這四種基本觸發器及其
    的頭像 發表于 07-27 14:59 ?1.2w次閱讀

    熱電偶補償的四種方式有哪些

    的準確性。以下是四種常見的熱電偶補償方式: 冷端補償法 冷端補償法是一常見的熱電偶補償方法,其基本原理是在熱電偶的冷端(即測量端)加入一個與熱電偶材料相同的金屬或合金,以補償熱電偶在冷端產生的熱電勢。這
    的頭像 發表于 07-23 17:06 ?3165次閱讀

    介紹MCUboot支持的四種升級模式(2)

    介紹MCUboot支持的四種升級模式,分別是Overwrite、Swap、Direct XIP和加載到RAM中執行。由于FSP不支持第四種——加載到RAM中執行,因為我們重點介紹前三
    的頭像 發表于 06-13 10:56 ?1068次閱讀
    介紹MCUboot支持的<b class='flag-5'>四種</b>升級模式(2)

    電氣設備的狀態有哪四種

    電氣設備的狀態可以分為四種:正常狀態、異常狀態、故障狀態和緊急狀態。這四種狀態涵蓋了電氣設備在運行過程中可能遇到的各種情況。本文將詳細分析這四種
    的頭像 發表于 06-05 16:47 ?5040次閱讀

    如何理解IGBT的四種SOA?

    如何理解IGBT的四種SOA? IGBT的四種SOA表示了IGBT器件在不同工作狀態下的安全操作區域。這四種SOA是:Continuous SOA、Limited SOA、Pulse SOA
    的頭像 發表于 02-18 11:04 ?1222次閱讀
    六合彩历史开奖记录| 真人游戏视频| 大发888娱乐城注册| 德州扑克3d豪华版| 民乐县| 网上百家乐官网赢钱公式| 澳门百家乐官网怎赌才能赚钱| 678百家乐官网博彩娱乐场开户注册| 百家乐正网开户| 反赌百家乐的玩法技巧和规则| 大发888 备用6222.co| 葵青区| 单机百家乐官网在线小游戏| 免费百家乐官网统计软件| 南京百家乐赌博现场被| 大发888娱乐场 手机版| 百家乐官网投注心得| 新东泰百家乐官网的玩法技巧和规则 | 百家百家乐官网官网网站| 闲和庄百家乐官网的玩法技巧和规则 | 百家乐官网可以破解吗| 百家乐官网菲律宾| 百家乐官网伴侣破解版| 百家乐官网伴侣| 迷你百家乐官网的玩法技巧和规则 | 怎么玩百家乐官网网上赌博| 百家乐庄河闲的赌法| 德州扑克辅助软件| 百家乐策略网络游戏信誉怎么样| 威尼斯人娱乐场色碟| 大发888娱乐城dmwd| 大发888线上娱乐城| 百家乐官网大眼仔用法| 六十甲子24山吉凶| 二八杠分析仪| 赌场百家乐官网玩法介绍| 百家乐庄闲桌子| 大发888游戏平台17| 百家乐游戏开户网址| 网上百家乐官网解码器| 百家乐合理的投注法|