大小端模式詳解

http://www.cnblogs.com/xinsheng/archive/2012/04/18/2455039.html

端模式(Endian)的這個詞出自Jonathan Swift書寫的《格列佛游記》。這本書根據將雞蛋敲開的方法不同將所有的人分為兩類,從圓頭開始將雞蛋敲開的人被歸為Big Endian,從尖頭開始將雞蛋敲開的人被歸為Littile Endian(這句話最為形象)。小 人國的內戰就源于吃雞蛋時是究竟從大頭(Big-Endian)敲開還是從小頭(Little-Endian)敲開。在計算機業Big Endian和Little Endian也幾乎引起一場戰爭。在計算機業界,Endian表示數據在存儲器中的存放順序。下文舉例說明在計算機中大小端模式的區別。

如果將一個32位的整數0x12345678存放到一個整型變量(int) 中,這個整型變量采用大端或者小端模式在內存中的存儲由下表所示。為簡單起見,本文使用OP0表示一個32位數據的最高字節MSB(Most Significant Byte),使用OP3表示一個32位數據最低字節LSB(Least Significant Byte)。?

?

地址偏移

大端模式

小端模式

0x00

12(OP0)

78(OP3)

0x01

34(OP1)

56(OP2)

0x02

56(OP2)

34(OP1)

0x03

78(OP3)

12(OP0)

?

小端:較高的有效字節存放在較高的的存儲器地址,較低的有效字節存放在較低的存儲器地址。
大端:較高的有效字節存放在較低的存儲器地址,較低的有效字節存放在較高的存儲器地址。
如果將一個16位的整數0x1234存放到一個短整型變量(short)中。這個短整型變量在內存中的存儲在大小端模式由下表所示。?

?

地址偏移

大端模式

小端模式

0x00

12(OP0)

34(OP1)

0x01

34(OP1)

12(OP0)

?

由上表所知,采用大小模式對數據進行存放的主要區別在于在存放的字節順序,大端方式將高位存放在低地址,小端方式將高位存 放在高地址。采用大端方式進行數據存放符合人類的正常思維,而采用小端方式進行數據存放利于計算機處理。到目前為止,采用大端或者小端進行數據存放,其孰 優孰劣也沒有定論。

有的處理器系統采用了小端方式進行數據存放,如Intel的奔騰。有的處理器系統采用了大端方式進行數據存放,如IBM半導體和Freescale的PowerPC處理器。不僅對于處理器,一些外設的設計中也存在著使用大端或者小端進行數據存放的選擇。

因此在一個處理器系統中,有可能存在大端和小端模式同時存在的現象。這一現象為系統的軟硬件設計帶來了不小的麻煩,這要求系統設計工程師,必須深入理解大端和小端模式的差別。大端與小端模式的差別體現在一個處理器的寄存器,指令集,系統總線等各個層次中。

【用函數判斷系統是Big Endian還是Little Endian】

//如果字節序為big-endian,返回true;
//反之為?? little-endian,返回false

bool?IsBig_Endian()
{
????unsigned short?test =?0x1234;
??? if(*( (unsigned char*) &test ) ==?0x12)
???????return?TRUE;
?? else
???????return?FALSE;

?

}//IsBig_Endian()

?

附:

  大小端的分度值是 byte,即每一個byte都是按照正常順序,但是byte組裝成一個int 或者是 long等時每個byte的擺放位置不同

轉載于:https://www.cnblogs.com/jingzhishen/p/4314403.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257591.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257591.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257591.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

.NET 跨平臺服務端資料

OWIN Web API: http://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api 用于寫API的 OWIN SignalR: http://www.dotnetcurry.com/signalr/915/owin-katana-signalr-web-server 用于寫即時通訊的轉載于:https://www.cnblogs.com/Jarvin…

mysql的查詢、子查詢及連接查詢

一、mysql查詢的五種子句 where子句(條件查詢):按照“條件表達式”指定的條件進行查詢。 group by子句(分組):按照“屬性名”指定的字段進行分組。group by子句通常和count()、sum()等聚合函數一起使用。 h…

BZOJ-1192-鬼谷子的錢袋

描述 鬼谷子非常聰明,正因為這樣,他非常繁忙,經常有各諸侯車的特派員前來向他咨詢時政。有一天,他在咸陽游歷的時候,朋友告訴他在咸陽最大的拍賣行(聚寶商行)將要舉行一場拍賣會,其中…

lamp 獨立mysql_lamp or lnmp 環境搭建之獨立安裝mysql數據庫

lamp or lnmp 環境搭建,如果mysql 是獨立安裝的則需要授權:單獨一臺服務器獨立安裝mysql安裝后,優化服務器。授權實例如下:創建用戶CREATE USER demo IDENTIFIED BY “passwd123”;授權使用mysql數據庫下面的所有表GRANT ALL PRIVILEGES ON m…

item 24: 區分右值引用和universal引用

本文翻譯自《effective modern C》,由于水平有限,故無法保證翻譯完全正確,歡迎指出錯誤。謝謝! 博客已經遷移到這里啦 古人曾說事情的真相會讓你覺得很自在,但是在適當的情況下,一個良好的謊言同樣能解放你…

WebLogic11g-常用運維操作

轉自:https://dead-knight.iteye.com/blog/1940399 希望這篇能把weblogic運維時經常遇到的問題、常用的配置匯總到一起。 1、配置jvm參數: 一般在domain啟動過程中會看到以下啟動的日志信息,如下圖所示: 圖中紅色方框部分為啟動we…

牛腩新聞發布系統(一):SQLHelper重構(一)

導讀:在機房重構的時候,就用到了SQLHelper,但那時候即使把代碼反復看了很多遍,也看了注釋,還和同學交流,也依然是半懂不懂。現在,我再次用到了SQLhelper這個東西,就來說說SQLHelper是…

OPENCV圖像輪廓檢測

前面在圖像轉換的時候學到canny算子,可以檢測出圖像的輪廓信息,但是,該算子檢測到的輪廓信息還需要我們手動的用眼睛去識別,而實際工程應用中,我們需要得到輪廓的具體數學信息,這就涉及到今天的主題,圖像輪廓檢測. 一.圖像輪廓檢測 在opencv中,輪廓對應著一系列的點的集合,open…

mysql 5.7.11 授權_mysql 5.7.11 安裝配置教程

六步輕松搞定mysql5.7.11的安裝1、下載安裝包。mysql-5.7.11版本:2、拷貝到任意盤:例如,解壓后拷貝文件夾至C盤:C:\Program Files\mysql。建議文件夾名字使用英文。3、配置環境變量:計算機—>右鍵—>高級系統設置…

iOS 面試之Block

轉自:http://blog.csdn.net/xunyn/article/details/11658261 1 什么是block 對于閉包(block),有很多定義,其中閉包就是能夠讀取其它函數內部變量的函數,這個定義即接近本質又較好理解。對于剛接觸Block的同學,會覺得有…

當安全遇到大數據 “永恒之藍”也將無所遁形!

文章講的是當安全遇到大數據 “永恒之藍”也將無所遁形!5月12日,席卷全球的勒索病毒“永恒之藍”讓全世界都為之震動,這是迄今為止全球最大規模的勒索病毒網絡攻擊,100多個國家受到病毒感染,國內中石油、公安內網、高校…

[ES] 安裝

1.ElasticSearch安裝的準備工作 Linux:CentOS6.4 Elasticsearc:elasticsearch-2.2.0 JDK:jdk-7u79-linux-x64 IK:1.8.0 MAVEN:apache-maven-3.3.3-bin 2.配置網絡靜態文件 虛擬機設置橋接模式 配置:vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVIC…

語言基礎之description方法

1.description方法的一般用處 1: // 指針變量的地址 2: NSLog("%p", &p); 3: // 對象的地址 4: NSLog("%p", p); 5: // <類名&#xff1a;對象地址> 6: NSLog("%", p); 1: Class c [Person class]; 2: …

亞信安全協助綠谷制藥確保“秘方”安全

近幾年&#xff0c;我國醫藥生物技術發展態勢迅猛&#xff0c;加強知識產權保護己成為當務之急。為確保制藥配方數據和生產管理信息系統安全&#xff0c;上海綠谷制藥有限公司采用亞信安全服務器深度安全防護系統&#xff08;Deep Security&#xff09;和亞信安全防毒墻網絡版&…

mysql判斷疊字_格律詩的八大語法特點

古風的語法&#xff0c;本來就和散文的語法大致相同&#xff0c;直到近體詩&#xff0c;才漸和散文不同&#xff0c;原因是&#xff0c;首先在區區五字或七字之中&#xff0c;要施展豐富的想象&#xff0c;不能不力求簡潔&#xff0c;凡可省去而不至于影響語意的字&#xff0c;…

旅游行業春節檔期的大數據營銷

本文講的是旅游行業春節檔期的大數據營銷,雖然我國是以傳統農耕文化為主導的社會&#xff0c;每逢春節講究返鄉團聚。但現代化的城市文明更是對很多人的生活方式產生了影響&#xff0c;特別是生活在大城市中的年輕人&#xff0c;以及由年輕人構成的小家庭來說&#xff0c;春節的…

openwrt lamp

https://applefreak111.wordpress.com/2013/03/12/howtoopenwrt-lamp-stack%E5%AE%89%E8%A3%9D/opkg update安裝Lighttpd, MySQL 5, 和PHP 5。opkg install lighttpd lighttpd-mod-cgi lighttpd-mod-fastcgivi /etc/lighttpd/lighttpd.confcgi.assign ( “.php” > “/usr/…

MySQL本天早上8點到明早8點_似乎找到 OSChina 早上 8 點鐘容易宕機的原因

最近一段時間&#xff0c;OSChina 網站在早上 8 點出頭的時候很容易因為數據庫連接池爆滿而導致網站宕機。表現的情況是數據庫處理大量的查詢&#xff0c;堆積大量并發連接&#xff0c;導致無法再連接到數據庫&#xff0c;執行一個簡單的查詢速度也非常慢&#xff0c;數據庫機器…

基于Eclipse搭建STM32開源開發環境

最近項目不忙&#xff0c;想著沒事看看簡單的嵌入式&#xff0c;弄弄物聯網什么的。于是就從廉價的STM32開刀了。因為一直是做PC軟件開發的&#xff0c;那VS的智能感知那叫一個爽啊&#xff0c;相比之下&#xff0c;覺得這個Keil簡直就像文本編輯器一樣low。于是想換一個開發環…

數據中心不再有空調、風扇等冷卻裝置會怎樣?

數據中心的變革有望依賴移動設備實現&#xff0c;手機里輕便設備或將成為下一代數據中心的基礎設施&#xff0c;服務Google和Facebook等大型的應用程序服務企業。同時&#xff0c;這種商業模式也會構建新一代企業的發展形態&#xff0c;為初創企業帶來前所未有的機遇。 CSDN大數…