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

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

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

大小端的判斷很簡(jiǎn)單,可判斷了有什么用呢?這是一個(gè)難纏的問(wèn)題,我最近就碰到了這樣一個(gè)問(wèn)題,比如,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é)安排的問(wèn)題。因此就導(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++基礎(chǔ)概念講述

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

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

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

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

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

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

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

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

    VS2019配置opencv詳細(xì)圖文教程和測(cè)試代碼的實(shí)現(xiàn)

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

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

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

    C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易五子棋小游戲

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

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

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

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

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

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

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

最新評(píng)論

札达县| 辰溪县| 定安县| 东乡县| 来安县| 抚州市| 霍邱县| 南京市| 乡宁县| 宜兰市| 昌都县| 工布江达县| 武川县| 科尔| 萝北县| 新丰县| 昌乐县| 泰宁县| 越西县| 岚皋县| 沈丘县| 曲沃县| 彭阳县| 西乌| 鸡东县| 织金县| 成安县| 灵丘县| 和平区| 泰和县| 凤阳县| 伊金霍洛旗| 徐水县| 武宁县| 石狮市| 涡阳县| 沙河市| 丰原市| 东方市| 图们市| 柯坪县|