亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

大小端的判斷很簡(jiǎn)單,可判斷了有什么用呢?這是一個(gè)難纏的問題,我最近就碰到了這樣一個(gè)問題,比如,int a = 0x12345678,char* p = &a,那么p[0]等于多少呢?答案要么是0x12,要么是0x78,對(duì)吧,如果你知道他是小端(因?yàn)榈厍蛉硕贾溃?,那么你肯定就知?STRONG>p[0] = 0x78,呵呵,換句話說(shuō),理解大小端對(duì)指針的運(yùn)用還是有一定幫助的。

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

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

方法一(強(qiáng)轉(zhuǎn)):

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

 int i = 0x12345678;
  char ch = (char)i;  //強(qiáng)轉(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)
  {
       //小端
  }

默認(rèn)為小端模式

相關(guān)文章

  • C語(yǔ)言位圖算法詳解

    C語(yǔ)言位圖算法詳解

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)的位圖算法,主要包括了位圖算法的定義與應(yīng)用,對(duì)于C程序算法設(shè)計(jì)的學(xué)習(xí)有一定的借鑒價(jià)值,需要的朋友可以參考下
    2014-09-09
  • C++中套接字庫(kù)sockpp的使用詳解

    C++中套接字庫(kù)sockpp的使用詳解

    sockpp是一個(gè)開源、簡(jiǎn)單、現(xiàn)代的C++套接字庫(kù),這篇文章主要為大家詳細(xì)介紹一下套接字庫(kù)sockpp的使用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2023-11-11
  • C++實(shí)現(xiàn)迷宮小游戲

    C++實(shí)現(xiàn)迷宮小游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)迷宮小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C++實(shí)現(xiàn)讀入二進(jìn)制數(shù)并轉(zhuǎn)換為十進(jìn)制輸出

    C++實(shí)現(xiàn)讀入二進(jìn)制數(shù)并轉(zhuǎn)換為十進(jìn)制輸出

    本文給大家介紹的是一則使用C++實(shí)現(xiàn)讀入二進(jìn)制數(shù)并轉(zhuǎn)換為十進(jìn)制輸出的代碼,實(shí)現(xiàn)起來(lái)其實(shí)非常簡(jiǎn)單,C++本身就提供了二進(jìn)制類庫(kù)的,大家看代碼吧,簡(jiǎn)單又實(shí)用。
    2015-03-03
  • C語(yǔ)言壓縮文件和用MD5算法校驗(yàn)文件完整性的實(shí)例教程

    C語(yǔ)言壓縮文件和用MD5算法校驗(yàn)文件完整性的實(shí)例教程

    這篇文章主要介紹了C語(yǔ)言壓縮文件和用MD5算法校驗(yàn)文件完整性的實(shí)例教程,這里演示了Windows下將文件壓縮為7z格式以及MD5檢驗(yàn)文件和密碼的方法,需要的朋友可以參考下
    2016-04-04
  • Cocos2d-x UI開發(fā)之場(chǎng)景切換代碼實(shí)例

    Cocos2d-x UI開發(fā)之場(chǎng)景切換代碼實(shí)例

    這篇文章主要介紹了Cocos2d-x UI開發(fā)之場(chǎng)景切換代碼實(shí)例,cocos2d-x中的場(chǎng)景切換是通過(guò)導(dǎo)演類調(diào)用相應(yīng)的方法完成的,本文通過(guò)代碼和詳細(xì)注釋來(lái)說(shuō)明,需要的朋友可以參考下
    2014-09-09
  • vs2019中使用MFC構(gòu)建簡(jiǎn)單windows窗口程序

    vs2019中使用MFC構(gòu)建簡(jiǎn)單windows窗口程序

    今天發(fā)現(xiàn)網(wǎng)上好多MFC代碼都不能用,給大家分享一個(gè)簡(jiǎn)單的MFC窗口語(yǔ)言,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C++中左值和右值的區(qū)別詳解

    C++中左值和右值的區(qū)別詳解

    大家好,本篇文章主要講的是C++中左值和右值的區(qū)別詳解,感興趣的同學(xué)趕緊來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • 你真的理解C語(yǔ)言qsort函數(shù)嗎?帶你深度剖析qsort函數(shù)

    你真的理解C語(yǔ)言qsort函數(shù)嗎?帶你深度剖析qsort函數(shù)

    這篇文章主要介紹了你真的理解C語(yǔ)言qsort函數(shù)嗎?帶你深度剖析qsort函數(shù),本篇將引入一個(gè)庫(kù)函數(shù)來(lái)實(shí)現(xiàn)我們希望的順序,結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • C++引用和指針的區(qū)別你知道嗎

    C++引用和指針的區(qū)別你知道嗎

    這篇文章主要為大家介紹了C++引用和指針的區(qū)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助<BR>
    2022-01-01

最新評(píng)論