我想知道,十六进制系统如何在装配中工作?
让我们说: 0xFF时, 是0xAB, 0x10C, 是0xA, 0xFC有。 我有一个例子,其中4 + 0xFC = 0xFF 有人可以向我解释每个字母和数字的含义以及计算方式吗?
答案 0 :(得分:2)
你真的在问十六进制是如何工作的。它的组装方面没有任何改变。
以十进制表示,每个数字从0到9(十个不同的值)。
在十六进制中,每个数字从0到9,然后到A,然后是B,C,D,E和F(16个不同的值)。
在两者中,当右边的数字带有一个数字时,高位数会递增。
顺便说一下,4 + 0XFC是0x100。
答案 1 :(得分:0)
您的信息4 + 0xFC = 0xFF
错误:4 + 0xFC = 0x100
。
取十六进制数0xFC
,0x
只是一个十六进制数的提示 - 它不构成其值FC
的一部分。还有其他表达方式,这取决于有效的语法。一些汇编程序需要0FCh
,在这种情况下,h
会告诉十六进制数字,而前导0
则是将值与标签区分开来 FCh
。
A
到F
表示小数值10
到15
,因为十六进制系统是16位且我们通常的计数系统是10,所以缺少那些-digit values。
以互补的方式,八进制数系统是基数8,因此不使用我们众所周知的十进制数字8
和9
。让我们首先看一下这个表示,因为很难用十六进制说话而不会被十进制混淆。
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
。
习惯十六进制表示法可能需要一段时间,但过了一会儿(就像学习人类语言一样),你会开始以这种方式思考,而不是经常翻译成和来回。