尾端

尾端是計算機中數據存儲的一種模式。首先由Danny Cohen(1980)引入計算機科學界。

基本介紹

  • 中文名:尾端
  • 所屬類型:計算機中數據存儲的一種模式
  • 引入者:Danny Cohen
  • 引入時間:1980年
起源:,分類:,大尾端與小尾端區別,定義,位元組層次。,位元組內位序 。,

起源:

“......我下面要告訴你的是,Lilliput和Blefuscu這兩大強國在過去的三十六個月里一直在苦戰。戰爭開始時由於一下原因:我們大家都認為,吃雞蛋前,原始的方法是打破雞蛋較大的一端,可是當今皇帝的祖父小時候吃雞蛋,一次按古法打雞蛋時碰巧將一個手指弄破了,因此他的父親,當時的皇帝,就下了一道赦令,命令全體臣民吃雞蛋是打破雞蛋較小的一端,違令者重罰。老百姓們對這項命令極為反感。歷史告訴我們,由此曾發生過六次叛亂,其中一個皇帝送了命,另一個丟了王位。這些判斷大多都是由Blefuscu的王國大臣們煽動起來的。叛亂平息後,流亡的人總是逃到那個帝國區尋求避難。據統計,先後幾次有一萬一千人情願受死也不肯去打破雞蛋較小的一端。關於這一爭端,曾出版過幾百本大部著作,不過大端派的書一直是受禁的,法律也規定該派的任何人不得做官。"(摘自蔣劍鋒譯的《格利佛遊記》第一卷第4章)Swift是在諷刺英國(Lilliput)和法國(Blefuscu)之間的持續的衝突。Danny Cohen,一位網路協定的早期開創者,第一次使用這兩個術語來指代位元組順序。”

分類:

計算機界存在著大尾端與小尾端兩大陣營,兩者存在著極深的鴻溝。

大尾端與小尾端區別

定義

大尾端:高位在低地址。
小尾端:低位在低地址。

位元組層次。

程式驗證:
int _tmain(int argc, _TCHAR* argv[])
{
union UData {
unsigned long integer;
unsigned char array[4];
} Data;
Data.integer=0x12345678;
printf("%x\t%x\t%x\t%x\n",Data.array[0],Data.array[1], Data.array[2], Data.array[3]);
return 0;
}
ps:一般PC是小端存儲的。

位元組內位序 。

在位元組內依然是:
大端:高位放在低地址。
小端:低位放在低地址。
大端與小端位序完全是鏡像的。下面的程式可證明。
int _tmain(int argc, _TCHAR* argv[])
{
struct BitData {
unsigned Bit0_3:4;
unsigned Bit4_7:4;
unsigned Bit8_11:4;
unsigned Bit12_15:4;
};
union SData {
unsigned short Data;
struct BitData BData;
} ssData;
ssData.Data=0x1234;//此時BData與Data完全共享同一空間。
printf("%x\t%x\t%x\t%x\n",ssData.BData.Bit0_3,ssData.BData.Bit4_7,ssData.BData.Bit8_11,ssData.BData.Bit12_15);
return 0;
}
在運行程式前請先推理一下會輸出什麼,然後運行一下看看結果。
上述程式在普通PC上(小尾端)結果應該是:
4 3 2 1

相關詞條

熱門詞條

聯絡我們