<listing id="3ld7f"><cite id="3ld7f"><ruby id="3ld7f"></ruby></cite></listing><cite id="3ld7f"><video id="3ld7f"><menuitem id="3ld7f"></menuitem></video></cite><cite id="3ld7f"></cite>
<menuitem id="3ld7f"></menuitem>
<cite id="3ld7f"></cite>
<var id="3ld7f"></var>
<cite id="3ld7f"></cite>
<menuitem id="3ld7f"></menuitem>
<var id="3ld7f"></var>
<ins id="3ld7f"><strike id="3ld7f"><menuitem id="3ld7f"></menuitem></strike></ins><cite id="3ld7f"><video id="3ld7f"><menuitem id="3ld7f"></menuitem></video></cite>
<var id="3ld7f"></var>
<cite id="3ld7f"></cite>
<var id="3ld7f"><video id="3ld7f"></video></var>
<cite id="3ld7f"></cite>
<var id="3ld7f"><video id="3ld7f"></video></var>
Youjizz Porn Videos - YouXxxJizz.com

驅動下載

當前位置:當前位置:瓦房店晨暉數據恢復 >> 驅動下載 >> 瀏覽文章

聯系我們

CONTACT US

電話:0411-39105197

24小時熱線:13074143855

QQ:114836734

郵箱:114836734@qq.com

地址:大連瓦房店北共濟街二段31號

晨暉服務 service

免費咨詢,免費檢測

恢復之前確定價格

可簽訂保密協議

數據恢復不成功不收費

不對源介質造成二次破壞

免費提供3天數據備份

免費上門取盤

節假日不休,7*24小時服務

字節序的問題

文章來源:本站原創

發布日期:2015年05月10日

大端、小端: 


     大小端是指CPU存儲數據的方式,比如一個0x01020304這個整數,在WIN、Linux下在內存中的布局如下
    [01][02][03][04] 注意左邊是高地址,而右邊是低地址
    在UNIX下則是
    [04][03][02][01] 注意左邊是高地址,而右邊是低地址

    通俗的說,和WIN下的內存布局一致的就是小端,和UNIX下一致的就是大端。
    其實在以前還出現過中端的的機型,不過這些機型也太“孤僻”了,已經落伍沒人生產沒人用了。

網絡字節序: 


    其實是指網絡傳輸的字節序,這個字節序可能是大端序或者小端序,這取決于軟件開始時通訊雙方的協議規定。
    平時,如果有人說的網絡字節序,那么大家就認為是大端序。

主機字節序:

 
    是指主機處理數據時采用的字節序,雖然主機字節序和網絡字節序是相對的概念,但是我們說主機字節序的時候,并不默認是之大端或者小端,而是結合機型來確定大小端的。

位序: 


    我們通常所說的字節序是指字節之間的關系,但是即使是一個字節中的某一位(bIT)也是有排序的問題的。位序也有大端序,小端序,中端序,也還有其他的亂七八糟的位序的,但是都不常見。
    開發的時候,我們是不用關心位序,編譯器和CPU會自己處理這些事情。 


算術運算與內存操作運算: 


    算術運算是不改變被運算數據的字節序的,此時我們不用關心所操作的數據到底是什么字節序的。但是內存操作運算就要注意了,比若我們將一個整數指針強制轉換為一個字符指針類型,然后對字符指針類型的四個字節進行算數運算,此時我們必須知道是什么字節序。不然寫出的代碼要么是錯誤的,要么移植到其他機器的時候就不能正常運行。

    常見的算術有+ - * / % & | ~ << >> = 等,請注意& | ~ << >> 這幾個是算術運算而不是內存操作運算,所以他們進行混合運算的時候不用關心字節序或者位序問題。賦值運算符僅在數據類型兼容的時候才不涉及字節序問題,才能算作算術運算。
    常見的內存操作運算有:強制轉換后對碎片數據的算術運算,內存copy/write,讀寫文件等。

浮點數的字節序: 


    浮點數......我也不知道應該怎么處理其字節序問題,網上也查了很久但是沒有很權威的答案。對于浮點數,我建議不要直接傳內存值,按照字符串傳輸即可。

IP地址的字節序: 


   記住一條,IP地址的整數值,自IP地址生成的時刻起,就一定是網絡字節序的,所以我們在轉字節序的時候,IP 地址我們往往跳過對IP地址的字節序轉換。呵呵,IP地址已經是網絡字節序了,所以我們僅需要做算術賦值操作即可。

字節序轉換函數: 


    OS一般都提供htons、htonl、ntohs、ntohl這四個字節序操作函數,這些函數的目的雖然相同,而且操作后內存布局也相同,但是從算術運算的角度來看這些函數的特性是與機型相關的:在WIN下這四個函數會改變所操作的數的數值,但是在UNIX下就不回改變數據的算術值,UNIX下這些函數是空操作。這個差別也可能是為什么UNIX服務器上程序的性能會高于WIN的一個小原因。 


更多精彩技術文章盡在 瓦房店數據恢復論壇BBS.DLWFD.NET



熱線:13074143855
在線客服
Youjizz Porn Videos - YouXxxJizz.com
<listing id="3ld7f"><cite id="3ld7f"><ruby id="3ld7f"></ruby></cite></listing><cite id="3ld7f"><video id="3ld7f"><menuitem id="3ld7f"></menuitem></video></cite><cite id="3ld7f"></cite>
<menuitem id="3ld7f"></menuitem>
<cite id="3ld7f"></cite>
<var id="3ld7f"></var>
<cite id="3ld7f"></cite>
<menuitem id="3ld7f"></menuitem>
<var id="3ld7f"></var>
<ins id="3ld7f"><strike id="3ld7f"><menuitem id="3ld7f"></menuitem></strike></ins><cite id="3ld7f"><video id="3ld7f"><menuitem id="3ld7f"></menuitem></video></cite>
<var id="3ld7f"></var>
<cite id="3ld7f"></cite>
<var id="3ld7f"><video id="3ld7f"></video></var>
<cite id="3ld7f"></cite>
<var id="3ld7f"><video id="3ld7f"></video></var>