處理器是Big_endian的,則返回0;是Little_endian的

時間:2018-12-31 12:00:00 資料大全 我要投稿

處理器是Big_endian的,則返回0;是Little_endian的,則返回1

  int checkCPU()

  {

  {

  union w

  {

  int a;

  char b;

  } c;

  c.a = 1;

  return (c.b == 1);

  }

  }

  剖析:

  嵌入式系統(tǒng)開發(fā)者應(yīng)該對Little-endian和Big-endian模式非常了解,

處理器是Big_endian的,則返回0;是Little_endian的,則返回1

。采用Little-endian模式的CPU對操作數(shù)的存放方式是從低字節(jié)到高字節(jié),而Big-endian模式對操作數(shù)的存放方式是從高字節(jié)到低字節(jié)。例如,16bit寬的數(shù)0×1234在Little- endian模式CPU內(nèi)存中的`存放方式(假設(shè)從地址0×4000開始存放)為:

  內(nèi)存地址 存放內(nèi)容

  0×4000 0×34

  0×4001 0×12

  而在Big-endian模式CPU內(nèi)存中的存放方式則為:

  內(nèi)存地址 存放內(nèi)容

  0×4000 0×12

  0×4001 0×34

  32bit寬的數(shù)0×12345678在Little-endian模式CPU內(nèi)存中的存放方式(假設(shè)從地址0×4000開始存放)為:

  內(nèi)存地址 存放內(nèi)容

  0×4000 0×78

  0×4001 0×56

  0×4002 0×34

  0×4003 0×12

  而在Big-endian模式CPU內(nèi)存中的存放方式則為:

  內(nèi)存地址 存放內(nèi)容

  0×4000 0×12

  0×4001 0×34

  0×4002 0×56

  0×4003 0×78

  聯(lián)合體union的存放順序是所有成員都從低地址開始存放,面試者的解答利用該特性,輕松地獲得了CPU對內(nèi)存采用Little-endian還是Big-endian模式讀寫,

資料共享平臺

處理器是Big_endian的,則返回0;是Little_endian的,則返回1》(http://m.clearvueentertainment.com)。如果誰能當(dāng)場給出這個解答,那簡直就是一個天才的程序員。

【處理器是Big_endian的,則返回0;是Little_endian的,則返回1】相關(guān)文章:

1.筆試題(函數(shù)的返回值)

2.職場中最艱難的是從0到1

3.筆試題(函數(shù)返回值)

4.知過則改永遠(yuǎn)是不嫌遲的

5.兼聽則明,偏信則暗

6.能忍則忍,一忍百則

7.生活的感悟三則

8.成就人生的17則