處理器是Big-endian的,則返回0;是Little-endian的

時間:2020-11-23 18:54:22 筆試題目 我要投稿

處理器是Big-endian的,則返回0;是Little-endian的,則返回1

  int checkCPU()

  {

  {

  union w

  {

  int a;

  char b;

  } c;

  c.a = 1;

  return (c.b == 1);

  }

  }

  剖析:

  嵌入式系統開發者應該對Little-endian和Big-endian模式非常了解。采用Little-endian模式的CPU對操作數的存放方式是從低字節到高字節,而Big-endian模式對操作數的存放方式是從高字節到低字節。例如,16bit寬的數0×1234在Little- endian模式CPU內存中的存放方式(假設從地址0×4000開始存放)為:

  內存地址 存放內容

  0×4000 0×34

  0×4001 0×12

  而在Big-endian模式CPU內存中的存放方式則為:

  內存地址 存放內容

  0×4000 0×12

  0×4001 0×34

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

  內存地址 存放內容

  0×4000 0×78

  0×4001 0×56

  0×4002 0×34

  0×4003 0×12

  而在Big-endian模式CPU內存中的存放方式則為:

  內存地址 存放內容

  0×4000 0×12

  0×4001 0×34

  0×4002 0×56

  0×4003 0×78

  聯合體union的存放順序是所有成員都從低地址開始存放,面試者的解答利用該特性,輕松地獲得了CPU對內存采用Little-endian還是Big-endian模式讀寫。如果誰能當場給出這個解答,那簡直就是一個天才的程序員。

【處理器是Big-endian的,則返回0;是Little-endian的,則返回1】相關文章:

超鏈接PPT怎么返回11-02

ppt超鏈接返回鍵11-02

寫一個函數返回1+2+3+…+n的值12-18

CAD中怎么樣快速返回之前的圖層狀態11-12

Java調用MySQL存儲過程并獲得返回值的方法11-13

0到1的求生12-04

asp.net中將js的返回值賦控件的小例子11-12

應屆畢業生檔案返回原籍和落戶程序12-18

由0是自然數引發的思考論文07-16

亚洲制服丝袜二区欧美精品,亚洲精品无码视频乱码,日韩av无码一区二区,国产人妖视频一区二区
日本亚洲成高清一区二区三区 | 婷婷亚洲久悠悠色悠在线播放 | 久久中文字幕无吗一二区 | 在线免费在线观看的a | 午夜两性色韩国在线视频 | 亚洲免费在线观看片 |