【问题标题】:How can I convert hexadecimal to decimal numbers in calc of Emacs?如何在 Emacs 的 calc 中将十六进制数转换为十进制数?
【发布时间】:2010-12-24 00:09:38
【问题描述】:

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

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

【问题讨论】:

    标签: emacs calc


    【解决方案1】:

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

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

    对了,你也可以阅读精品手册TMGNU Emacs Calc Manual.

    【讨论】:

    • C-x * q 10#255 将在迷你缓冲区中以十进制、十六进制、八进制和二进制显示 255。
    • @DavorCubranic 仅当显示基数以十进制开头时才有效。如果是例如二进制,它只会显示二进制。
    • 我在尝试您的提示时偶然发现了这一点。我的计算设置为二进制显示...
    【解决方案2】:

    Svante 回答了您的问题,但我想补充一点,基数显示模式更改有一个quicker keystroke

    • 以十六进制模式显示:d 6
    • 以十进制模式显示:d 0

    【讨论】:

      【解决方案3】:

      当然你可以输入16#FF来输入0xFF,不过还有更方便的方法。

      另一种选择:

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

      注意: 没有# 输入的数字总是插入一个十进制数字。 注意2:这也适用于相反的方式。

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

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

      注意: 你看到的是16##FD。两个#表示有符号,存储在RAM中的值为0xFD

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

      此信息取自Emacs Calc Manual

      【讨论】:

      • 赞成,因为您指出您需要以 # 开头
      • 当我尝试在# 之后粘贴一个十六进制值(没有前导0x)时,我得到[Bad format],但很容易执行#`(磅反引号)来到达行编辑器并将十六进制粘贴到那里。
      猜你喜欢
      • 1970-01-01
      • 2015-01-26
      • 1970-01-01
      • 2013-05-31
      • 2018-07-04
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多