在计算机中用十六进制的原因,关于体系结构:为什么计算机以汇编语言使用十六进制数字系统?...

为什么计算机以汇编语言使用十六进制数字系统? 他们为什么不使用其他数字系统,例如二进制,八进制,十进制? 什么事情迫使计算机设计师在组装时使用十六进制系统? 为什么它看起来对他们如此有益?

嗯,我很确定,许多汇编语言都允许您以十进制而不是十六进制指定值。 而且计算机本身不在乎-汇编程序只是要将汇编程序更改为字节,此时,源代码中的基数是无关紧要的。 ("计算机设计器"!="汇编语言设计器")

计算机仅理解数字逻辑,通常由二进制数字系统表示。 hex只适用于人类,因为它很容易将1个十六进制数字映射为4位。

什么东西强迫人类使用十进制数字? 这就使得在心理上很难加倍和减半,这是人类能够在头脑中普遍准确地理解的唯一乘法运算。

@Kerrek:两只手的手指数除以两等于一只手的手指数。

电脑不使用十六进制。计算机中没有可用于十六进制值的组件。取而代之的是,计算机大部分工作在二进制值上,即数字"是"和"否"信息,表示为"施加的电压"和"没有电压",也称为" hi"和" lo",或" 1"和" 0"

但是,因为用0和1的字符串来表示人类的二进制数使它们难以阅读,所以将十六进制用作快捷方式:将4位(1和0的信息)的组表示为一个十六进制数字。

从二进制到十六进制的转换非常简单,反之亦然。将二进制转换为十进制,或将十进制转换为二进制,涉及更多操作。

因此,十六进制系统不是由计算机使用的,而是由人类使用的,用于二进制的更简短的表示,但是比从/到十进制的转换更容易。

十六进制数字的另一个特点是,它们优于十进制数字:两个数字之间的转换仅涉及一位或几位的转换是很常见的。最终的十进制数看起来会非常不同-改变的位越大,数值越大越多。在十六进制数字中,只有覆盖已更改位的数字会更改,其余数字将保留其值。这有助于在精神上对那些十六进制数字代表的值进行分组。

此外,十六进制也是/曾经是八进制系统。缺点是一个八进制数字仅描述一组3位,而不是4位。计算机中的二进制数(例如,地址)通常具有2的幂的范围,所以该数字更适合四组而不是四组三。

人类没有被"强迫"使用十六进制进行组装的事情。这仅仅是一个方便的事情。

+1。 当Im处理2的幂或位掩码时,我倾向于使用十六进制表示法,而对于其他所有内容,我倾向于使用十进制表示法。

在汇编语言中,从位生成数字并查看将哪些位设置为特定数字通常很重要。

如以下示例所示,在C程序中通常也是如此:

a = b&0xE0; // high 3 bits

c = b&0x1F; // low 5 bits

正如其他答案中已经提到的那样,使用二进制数字不是很容易理解。但是,使用十进制数字将无法查看受影响的位:

a = b&222; // which of these three instructions

a = b&224; // takes the high 3 bits?

a = b&226; // it is not easy to see!

当使用以2 ^ N(八进制或十六进制)为基数的编号系统时,一位数字对应于某些位(例如,在十进制系统中,更改十进制数一位可能会更改二进制数中的所有位)。

八进制数的使用少于十六进制数。可能的原因是八进制数字代表3位,而十六进制数字代表4位。但是,现代计算机中使用的所有数据类型都使用4位的倍数。示例:" uint16"数字可以用4位十六进制数字表示,而所有4位十六进制数字都可以用" uint16"数字表示。

嗯,表示它们的方式并没有什么不同,但是我们知道人类不理解二进制数字,它们只是使计算机的工作变得更轻松,因为它只能在真假两种状态下工作。因此,为了使二进制数字(指令)易于阅读,我们采用了十六进制数字系统来表示汇编指令。它起源于计算机的历史。

For example we can represent this binary number

11010101110100110010001100111010 in

hex as     0xd5d3233a

octal as   32564621472

decimal as 3587384122

如您所见,它易于阅读并且对人来说不太容易出错。十六进制值是最精确的。

我不同意:这些数字的"精度"是相同的。 数字精度描述了其价值的可重复性和可重复性。 所显示的二进制数将转换为等效于其十进制数而不是等效于其八进制或十六进制数的频率,因此它们具有相同的精度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值