2015-10-16 65 views
0

我想知道,十六進制系統如何在裝配中工作?在裝配中計數十六進制

可以說我有: 0xFF時, 是0xAB, 0x10C, 是0xA, 0xFC有。 我有一個例子,其中4 + 0xFC = 0xFF 有人可以爲我解釋每個字母和數字的含義以及它是如何計算的?

+0

我會指出,它的簡潔之處在於,我們可以輕鬆地將二進制數轉換爲十六進制數。每個字節有2個十六進制數字(半字節),每個半字節有4個位。將0xC7轉換爲1100-0111b或反之亦然 - 將小數點後199轉換成任意一個都比較困難。這可以幫助解釋爲什麼人們在編程中經常使用十六進制數字 – enhzflep

回答

2

你真的在問十六進制是如何工作的。它的組裝方面不會改變任何東西。

十進制,每個數字從0到9(十個不同的值)。

十六進制中,每個數字從0到9,然後到A,然後是B,C,D,E和F(16個不同的值)。

在兩者中,當右邊的數字攜帶一個數字時,高位數字遞增。

順便說一句,4 + 0XFC是0x100。

0

您的信息4 + 0xFC = 0xFF是錯誤的:4 + 0xFC = 0x100

取十六進制數0xFC0x只是一個提示,它是一個十六進制數字 - 它不構成其值FC的一部分。還有其他表達方式,它取決於現行的語法。有些彙編將要0FCh,在這種情況下,h講述了一個十六進制數字,以及領先的0是從標籤FCh區分

AF表示十進制值1015,因爲十六進制是基座16和我們通常的計數系統是基座10,所以缺乏那些個位數的值。

以相輔相成的方式,八進制數字系統是基數8,因此我們熟知的十進制數字89未使用。我們首先來看這種表示,因爲很難用十六進制進行交談而不會被十進制弄糊塗。

八進制與其他數字基本系統的工作方式相同。以**表示「上升到功率」,八進制74表示7 x 8**1 + 4 x 8**0。在這種情況下,8很容易理解,但在八進制中並不存在。它的定位表示八進制是10,所以我應該有書面7 x 10**1 + 4 x 10**0

讓我們來看看一些補充。在十進制

96 + 
    4 
--- 
100 (decimal) 

因爲6 + 4產生進位也是如此9 + carry。在八進制同樣的方式

74 + 
    4 
--- 
100 (octal) 

因爲4 + 4產生進位也是如此7 + carry

十六進制也以相同的方式工作,但它很難描述,因爲我們缺乏6個手指來計算。號碼FC表示F x 10**1 + C x 10**0。在這種情況下10是十進制的十六進制格式16。以小數表示,它是15 x 16**1 + 12 x 16**0

現在對於十六進制數字,你被錯誤地建議。

FC + 
    4 
--- 
100 (hexadecimal) 

因爲C + 4產生進位也是如此F + carry

十六進制在二進制表示法中有其基礎,因爲這就是計算機算法的工作原理。十進制數15是二進制1111,十進制數12是二進制1100。十六進制只是一種更方便的方式來表達二進制,一次取二進制數字(位)4。所以這裏的二進制1111是十六進制的F和二進制1100是十六進制的C。把它們放在一起,二進制11111100是十六進制的FC

十六進制符號(就是這樣)在看到較大的值時很有用。人類的思想不能輕易掌握如32位值11011110101011011011111011101111等一長串系列,但十六進制即爲DEADBEEF

習慣十六進制符號可能需要一點時間,但過了一段時間(如學習人類語言時),您將開始以這種方式認爲,而不是不斷翻譯來回。