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

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

    文章

    4477

    瀏覽量

    70544
  • 字節
    +關注

    關注

    0

    文章

    40

    瀏覽量

    13718

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

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

收藏 人收藏

    評論

    相關推薦

    電氣設備四種工作狀態

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

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

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

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

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

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

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

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

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

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

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

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

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

    電氣設備的狀態有哪四種

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

    如何理解IGBT的四種SOA?

    如何理解IGBT的四種SOA? IGBT的四種SOA表示了IGBT器件在不同工作狀態下的安全操作區域。這四種SOA是:Continuous SOA、Limited SOA、Pulse SOA
    的頭像 發表于 02-18 11:04 ?989次閱讀

    三相異步電動機調速的方法有哪些?四種常用方法解析

    三相異步電動機調速的方法有哪些?四種常用方法解析? 三相異步電動機調速的方法有很多種,其中較為常用的包括電壓調制、變頻調速、轉差調速和自耦調速等。下面將對這
    的頭像 發表于 02-01 16:24 ?7243次閱讀

    電氣設備四種狀態介紹

    電氣設備的運行、熱備用、冷備用和檢修狀態是描述電力系統中設備工作模式的術語。這些狀態反映了設備在電力系統中的不同角色和功能,以及它們對系統可靠性和穩定性的影響。以下是這四種狀態的詳細解
    的頭像 發表于 01-25 14:46 ?3250次閱讀
    電氣<b class='flag-5'>設備</b><b class='flag-5'>四種</b>狀態介紹

    電子負載的四種功能實現原理

    電子負載的四種功能實現原理? 電子負載是一用于模擬負載、測試和評估電源、電池和其他電子設備的工具。它可以模擬電子負載的特性,并能夠提供不同的負載條件。電子負載主要通過四種功能來實現:
    的頭像 發表于 01-18 14:13 ?2391次閱讀

    設備管理通道控制四種方式

    設備管理的主要任務之一是控制設備和內存或處理機之間的數據傳送,外圍設備和內存之間的輸入/輸出控制方式有四種,下面分別介紹。
    發表于 12-08 14:05 ?990次閱讀
    <b class='flag-5'>設備</b>管理通道控制<b class='flag-5'>四種</b>方式

    四種接近傳感器PK,誰能勝出?

    四種接近傳感器PK,誰能勝出?
    的頭像 發表于 12-07 09:28 ?1635次閱讀
    <b class='flag-5'>四種</b>接近傳感器PK,誰能勝出?

    四種半導體器件基本結構

    按施敏教授的觀點,半導體器件有個最基本的結構單元:金半接觸、PN結、異質結、MOS結構。所有的半導體器件都可以看作是這四種基本結構的組合,比如BJT由兩個背靠背的PN結構成,MOSFET由MOS結構和兩對PN結構成。
    的頭像 發表于 11-30 15:56 ?2989次閱讀
    <b class='flag-5'>四種</b>半導體器件基本結構