国产精在线-国产精欧美一区二区三区-国产精视频-国产精品 日韩-一级黄色片在线看-一级黄色片在线播放

數據寬度和字節序

數據的寬度

數據的寬度是指數據在存儲器中存儲的尺寸。在計算機中,所有數據的基本存儲單位都是字節(byte),每個字節占8個位(位是計算機存儲的最小單位,而不是基本單位,因為在存儲數據時幾乎沒有按位進行存儲的)。其他的存儲單位還有字(word)、雙字(dword)和八字節(qword)。

在計算機編程中,常用的幾個重要數據存儲單位分別就是byte、word和dword,這幾個存儲單位。

單位 所占位數 所占字節數
字節(byte) 8位 1字節
字(word) 16位 2字節
雙字(dword) 32位 4字節
八字節(qword) 64位 8字節

數值的表示范圍

在計算機中存儲數值時,也是要依據前面的數據寬度進行存儲的,那么在存儲數據時由于存儲數據的寬度限制,數值的表示也是有范圍限制的。那么byte、word 和dword能存儲多少數據呢?我們先來計算一下,如果按位存儲的話,能存儲多少個數據,再分別來計算以上三種單位能夠存儲的數值的范圍。

計算機使用二進制進行數據存儲時,一位二進制最多能表示幾個數呢?因為是二進制數,只存在0和1兩個數,所以一位二進制數最多能表示兩個數,分別是0和1。那么,兩位二進制最多能表示幾個數呢?因為一位二進制數能表示兩個數,所以兩位二進制數則能表示2的2次方個數,即4個數,分別是0、1、10、11。進一步地,三位二進制數能表示的就是2的3次方個數,即8個數,分別是0、1、10、11、100、101、110、111。

存儲單位 十進制范圍 十六進制范圍 2的N次方
字節(byte) 0-255 0-FF 2的8次方
字(word) 0-65535 0-FFFF 2的16次方
雙字(dword) 0-4294967295 0-FFFFFFFF 2的32次方

2的8次方是256,為什么數值只有0~255個呢?因為計算機計數是從0開始,從0到255同樣是256個數,這里的2的8次方表示能夠表示數值的個數,而不是能夠表示數值的最大的數。
這里只給出了無符號整數的表示范圍,那么什么是無符號呢?數值分為有符號數和無符號數,有符號數是分整數和負數的,而無符號數值有整數沒有負數。負數在計算機中的表示有符號數時借助了最高位來進行,如果最高位是0,那么就是整數,如果最高位是1則是負數。關于有符號數和無符號數不必過多地糾結,因為計算機表示數據是不區分有符號還是無符號的,有符號還是無符號是人在進行區分。

有符號數和無符號數

數學中的數據分為正數和負數,在計算機中我們分為無符號數和有符號數,無符號數表示全是正數,有符號數表示有正數和負數。這里好比將容器貼個標簽,將它貼上“無符號數”的標簽,那么它里面都是正數。如果它的標簽是“有符號數”,那么它里面的數據可能是正數也是負數。它里面的電路數量是一定的,它能表示的開關組合也是一定的,那么它到底是按無符號數看還是有符號數看,關鍵在于它標簽是什么。

如下圖,數據寬度為4的容器能存儲的數據轉換為十六進制為“0~F”,使用一個圓球表示

無符號數表示范圍:0?1?2?3?4?5?6?7?8?9?A?B?C?D?E?F,箭頭方向表示增加方向?有符號數:
正數表示范圍:0?1?2?3?4?5?6?7

負數表示范圍:-1?-2?-3?-4?-5?-6?-7?-8(從半圓F起到8,所以F表示-1,8表示-8)

無符號數不難理解,而有符號數則是從中間一分為二,左邊為負數,右邊為正數。同一個圓把它看成無符號數它是一個正數,如果把它看成是有符號數則是有正有負。比如F,它如果是無符號數,就是15,如果是有符號數它就是-1。

字節序

字節序也稱為字節順序,在計算機中對數值的存儲有一定的標準,而該標準隨著系統架構的不同而不同。了解字節存儲順序對于逆向工程是一項基礎知識,在動態分析程序的時候,往往需要觀察內存數據的變化情況,這就需要我們在掌握數據的存儲寬度、范圍之后,進一步了解字節順序。

通常情況下,數值在內存中存儲的方式有兩種,一種是大尾方式,另一種是小尾方式。關于字節序的知識,通過一個簡單的例子就可以掌握。

比如有0x01020304(C語言中對十六進制數的表示方式)這樣一個數值,如果用大尾方式存儲,其存儲方式為01020304,而用小尾方式進行存儲則是04030201,用更直觀的方式展示其區別,如表所列。

大尾方式 小尾方式
數據 地址值 數據 地址值
01 00000000H 04 00000000H
02 00000001H 03 00000001H
03 00000002H 02 00000002H
04 00000003H 01 00000003H

從兩個地址列可以看出,地址的值都是一定的,沒有變化,而數據的存儲順序卻是不相同的。從表中可以得到如下結論。

大尾存儲方式:內存高位地址存放數據低位字節數據,內存低位地址存放數據高位字節數據;

小尾存儲方式:內存高位地址存放數據高位字節數據,內存低位地進存放數據低位字節數據。

通常情況下,Windows操作系統兼容的CPU為小尾存儲方式,而Unix操作系統兼容的CPU多為大尾存儲方式。在網絡中傳輸的數據的字節順序使用的是大尾存儲方式。

THE END
主站蜘蛛池模板: 亚洲国产高清一区二区三区 | 在线a毛片免费视频观看 | 国产免费自拍视频 | 最新欧美精品一区二区三区不卡 | 欧美国产成人精品一区二区三区 | 三级在线国产 | 亚洲欧美日韩一区 | 色老头久久久久 | 手机看片日韩日韩国产在线看 | 鸥美性生交xxxxx久久久 | 欧美激情毛片裸推荐 | 91亚洲精品一区二区福利 | 国产成人免费片在线视频观看 | 成人欧美精品大91在线 | 亚洲第一免费视频 | 欧美一区二区三区在线观看免费 | 国产日韩欧美亚洲 | 毛片1级 | 精品一区二区三区视频在线观看 | 欧美日韩另类视频 | 偷拍自拍第一页 | 欧美激情亚洲一区中文字幕 | 久草热视频 | 欧美在线看欧美高清视频免费 | 大美女香蕉丽人视频网站 | 国产精品白浆流出视频 | 瑟瑟网站在线观看 | 2020国产微拍精品一区二区 | 美女国产福利视频 | 国产精品伦理久久久久 | 日本特一级毛片免费视频 | 欧美成人看片一区二区三区 | 免费一级美国片在线观看 | 国产第一草草影院 | 国产精品成人免费综合 | 盗摄偷拍a在线观看 | 亚洲欧美一区二区三区久久 | 久久com| 在线综合亚洲欧美自拍 | 日韩免费观看一级毛片看看 | 欧美一级一片 |