最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

節(jié)序問題:解析大小的端判定

 更新時間:2013年05月27日 09:49:51   作者:  
本篇文章是對大小的端判定進行了詳細的分析介紹,需要的朋友參考下

大小端的判斷很簡單,可判斷了有什么用呢?這是一個難纏的問題,我最近就碰到了這樣一個問題,比如,int a = 0x12345678,char* p = &a,那么p[0]等于多少呢?答案要么是0x12,要么是0x78,對吧,如果你知道他是小端(因為地球人都知道),那么你肯定就知道p[0] = 0x78,呵呵,換句話說,理解大小端對指針的運用還是有一定幫助的。

一、大小端概念
要判斷電腦的大小端,肯定先要理解大小端的概念:
大端模式(Big-Endian),是指數(shù)據(jù)的高位,保存在內(nèi)存的低地址中,而數(shù)據(jù)的低位,保存在內(nèi)存的高地址中,即高低高低;
小端模式(Little-Endian),是指數(shù)據(jù)的高位,保存在內(nèi)存的高地址中,而數(shù)據(jù)的低位,保存在內(nèi)存的低地址中,即高高低低。

二、為什么要有大小端模式之分?
這是因為在計算機系統(tǒng)中,我們是以字節(jié)為單位的,每個地址單元都對應(yīng)著一個字節(jié),一個字節(jié)為 8bit。但是在C語言中除了8bit的char之外,還有16bit的short型,32bit的long型(要看具體的編譯器),另外,對于位數(shù)大于 8位的處理器,例如16位或者32位的處理器,由于寄存器寬度大于一個字節(jié),那么必然存在著一個如果將多個字節(jié)安排的問題。因此就導(dǎo)致了大端存儲模式和小端存儲模式。例如一個16bit的short型x,在內(nèi)存中的地址為0x0010,x的值為0x1122,那么0x11為高字節(jié),0x22為低字節(jié)。對于大端模式,就將0x11放在低地址中,即0x0010中,0x22放在高地址中,即0x0011中。小端模式,剛好相反。我們常用的X86結(jié)構(gòu)是小端模式,而KEIL C51則為大端模式。很多的ARM,DSP都為小端模式。有些ARM處理器還可以由硬件來選擇是大端模式還是小端模式。
 
三、判斷大小端的方法

方法一(強轉(zhuǎn)):

復(fù)制代碼 代碼如下:

 int i = 0x12345678;
  char ch = (char)i;  //強轉(zhuǎn)
  if(0x12 == ch)
  {
      //大端 
  }
  if(0x78 == ch)
  {
      //小端
  }

方法二(共用體):
復(fù)制代碼 代碼如下:

union A{
     int i;
     char ch; 
}a;
  a.i = 0x12345678;
  if(0x12 == a.ch)
  {
       //大端 
  }
  if(0x78 == a.ch)
  {
       //小端
  }

默認為小端模式

相關(guān)文章

  • C++基礎(chǔ)概念講述

    C++基礎(chǔ)概念講述

    這篇文章主要介紹了C++基礎(chǔ)概念,??本次為C++的一個開篇,重點是更好的理解C++相對于其他編程語言的一個特性,之后會持續(xù)更新,本次專欄計劃是掌握C++的基礎(chǔ)語法以及常用特性,并且從細節(jié)上去理解,需要的朋友可以參考一下
    2021-12-12
  • C++與namespace有關(guān)的兩個編譯錯誤的講解

    C++與namespace有關(guān)的兩個編譯錯誤的講解

    今天小編就為大家分享一篇關(guān)于C++與namespace有關(guān)的兩個編譯錯誤的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • C語言入門篇--理解地址及內(nèi)存

    C語言入門篇--理解地址及內(nèi)存

    本篇文章是基礎(chǔ)篇,適合c語言剛?cè)腴T的朋友,本文主要介紹了c語言的內(nèi)存及地址,幫助大家快速入門c語言的世界,更好的理解c語言
    2021-08-08
  • Qt獲取git版本信息的具體方法

    Qt獲取git版本信息的具體方法

    這篇文章主要介紹了Qt獲取git版本信息的具體方法,今天又碰到這個問題了,想根據(jù)具體的git版本信息做代碼問題確認,文中有詳細的解決方案,具有一定的參考價值,需要的朋友可以參考下
    2024-04-04
  • VS2019配置opencv詳細圖文教程和測試代碼的實現(xiàn)

    VS2019配置opencv詳細圖文教程和測試代碼的實現(xiàn)

    這篇文章主要介紹了VS2019配置opencv詳細圖文教程和測試代碼的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • C語言實現(xiàn)交換排序算法(冒泡,快速排序)的示例代碼

    C語言實現(xiàn)交換排序算法(冒泡,快速排序)的示例代碼

    這篇文章主要為大家詳細介紹了如何利用C語言實現(xiàn)交換排序算法(冒泡排序、快速排序),文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-07-07
  • C語言實現(xiàn)簡易五子棋小游戲

    C語言實現(xiàn)簡易五子棋小游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單五子棋小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C/C++程序開發(fā)中實現(xiàn)信息隱藏的三種類型

    C/C++程序開發(fā)中實現(xiàn)信息隱藏的三種類型

    這篇文章主要介紹了C/C++程序開發(fā)中實現(xiàn)信息隱藏的三種類型的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • C++找出字符串中出現(xiàn)最多的字符和次數(shù),時間復(fù)雜度小于O(n^2)

    C++找出字符串中出現(xiàn)最多的字符和次數(shù),時間復(fù)雜度小于O(n^2)

    今天小編就為大家分享一篇關(guān)于C++找出字符串中出現(xiàn)最多的字符和次數(shù),時間復(fù)雜度小于O(n^2),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 解決C++ fopen按行讀取文件及所讀取的數(shù)據(jù)問題

    解決C++ fopen按行讀取文件及所讀取的數(shù)據(jù)問題

    今天小編就為大家分享一篇解決C++ fopen按行讀取文件及所讀取的數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07

最新評論

武川县| 玉环县| 襄樊市| 通河县| 昭觉县| 江西省| 临城县| 正镶白旗| 江西省| 岳池县| 汪清县| 武威市| 云和县| 象山县| 健康| 平顶山市| 保亭| 西盟| 淳安县| 扶沟县| 堆龙德庆县| 郴州市| 迁西县| 蒙阴县| 自贡市| 洛南县| 个旧市| 叙永县| 运城市| 凤山市| 惠来县| 阜新市| 军事| 枝江市| 博湖县| 柳州市| 安国市| 广德县| 麻江县| 临猗县| 大化|