23

如何在 Emacs calc 中将十六进制数转换为十进制数?例如,如果我输入FF,我希望它转换为255

更新:如何进行反向操作,将基数 ​​10 转为基数 16?

4

3 回答 3

38

您可以在格式中输入任何数字<base>#<number>。示例:16#FF立即转换为255.

反之则需要设置输出显示模式。在此示例中,d r 16 RET将显示设置为以 16 为底。将其设置为以 10 为底以再次获得默认行为。

顺便说一句,您还可以阅读 The Fine Manual TM : GNU Emacs Calc Manual

于 2009-12-07T13:17:10.237 回答
13

Svante回答了您的问题,但我想补充一点,基数显示模式更改具有更快的击键

  • 以十六进制模式显示:d 6
  • 以十进制模式显示:d 0
于 2009-12-17T15:08:13.560 回答
6

当然你也可以16#FF输入0xFF,但是还有一种更方便的方法。

另一种选择:

  1. 将显示基数更改为十六进制d 6
  2. 然后输入你想要的所有十六进制数字,在它们前面加上一个#和。(意思是用给定的显示基数解释数字)#FF<enter>#
  3. 在此之后,使用 将显示基数改回十进制d 0

注意:输入的数字#始终插入十进制数字。 注意2:这也适用于相反的方式。

负值: 现在假设您有一个 8 位系统,并且您想知道十进制 -3 是如何存储在该系统 RAM 中的。

  1. 切换字长:b w 8
  2. 通过键入3 n和输入 dec -3<enter>
  3. 使用二进制补码表示法将显示基数设置为十六进制:O d 6. (Oas 选项对于启用二进制补码很重要。)

注意:你看16##FD。两种#表示它是有符号的并且存储在 RAM 中的值是0xFD

上述内容也适用于d 2, d 8(作为 bin 和 oct 的快捷方式)和其他可能的显示基数,从 2 到 36 ( d r <radix-number>)。

此信息取自Emacs Calc Manual

于 2019-09-19T12:16:09.493 回答