在装配中计算十六进制

时间:2015-10-16 17:04:52

标签: assembly hex

我想知道,十六进制系统如何在装配中工作?

让我们说: 0xFF时, 是0xAB, 0x10C, 是0xA, 0xFC有。 我有一个例子,其中4 + 0xFC = 0xFF 有人可以向我解释每个字母和数字的含义以及计算方式吗?

2 个答案:

答案 0 :(得分:2)

你真的在问十六进制是如何工作的。它的组装方面没有任何改变。

以十进制表示,每个数字从0到9(十个不同的值)。

在十六进制中,每个数字从0到9,然后到A,然后是B,C,D,E和F(16个不同的值)。

在两者中,当右边的数字带有一个数字时,高位数会递增。

顺便说一下,4 + 0XFC是0x100。

答案 1 :(得分:0)

您的信息4 + 0xFC = 0xFF错误:4 + 0xFC = 0x100

取十六进制数0xFC0x只是一个十六进制数的提示 - 它不构成其值FC的一部分。还有其他表达方式,这取决于有效的语法。一些汇编程序需要0FCh,在这种情况下,h会告诉十六进制数字,而前导0则是将标签区分开来 FCh

AF表示小数值1015,因为十六进制系统是16位且我们通常的计数系统是10,所以缺少那些-digit values。

以互补的方式,八进制数系统是基数8,因此不使用我们众所周知的十进制数字89。让我们首先看一下这个表示,因为很难用十六进制说话而不会被十进制混淆。

Octal的工作方式与其他数字基础系统相同。将**表示“提升为权力”,八进制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也是如此。

Hex也以相同的方式工作,但是难以描述,因为我们缺少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也是如此。

Hexadecimal以二进制表示法为基础,因为这就是计算机算法的工作原理。十进制数15是二进制1111,十进制数12是二进制1100。通过一次取二进制数字(位)4,十六进制只是表达二进制的一种更方便的方式。因此,二进制1111为十六进制F,二进制1100为十六进制C。将它们组合在一起,二进制11111100为十六进制FC

当看到较大的值时,

Hex 表示法(就是这样)就很有用。人类思维不能轻易掌握一长串的比特,例如32位值11011110101011011011111011101111,但是以十六进制表示DEADBEEF

习惯十六进制表示法可能需要一段时间,但过了一会儿(就像学习人类语言一样),你会开始以这种方式思考,而不是经常翻译成和来回。