如何在Emacs的calc中将十六进制转换为十进制数?

时间:2009-12-07 12:54:03

标签: emacs calc

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

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

3 个答案:

答案 0 :(得分:34)

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

反过来说,您需要设置输出显示模式。在此示例中,d r 16 RET 将显示设置为基数16.将其设置为基数10以再次获取默认行为。

顺便说一句,您还可以阅读精细手册 TM GNU Emacs Calc Manual

答案 1 :(得分:12)

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

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

答案 2 :(得分:3)

您当然可以键入16#FF来输入0xFF,但是有一种更方便的方法。

另一个选项:

  1. 使用d 6将显示基数更改为十六进制
  2. 然后输入所有所需的十六进制数字,并在其前面加上##FF之类的<enter>。 (#表示以给定的显示基数解释数字)
  3. 此后,用d 0将显示基数改回十进制。

注意:输入不带#的数字始终会插入一个十进制数字。 Note2:反之亦然。

负值: 现在,假设您有一个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