0xc 20170125.1953(in MELPA)
Base conversion made easy

概要

0xc.elは整数の基数変換(2進法、8進法、10進法、16進法etc)を行うコマンド集です。
M-x 0xc-convertは数と変換後の基数を入力し、変換後の数を表示します。

M-x 0xc-convert-pointはカーソル位置の数をデフォルトの基数に変換した数に置き換えます。
デフォルトは10進数に置き換えますが、数引数で基数を指定できます。
たとえば、カーソル位置の「27」を16進数に置き換えたければC-u 16 M-x 0xc-convert-pointで1Bになります。

0xc.elが受け付ける整数の記法はこのようになります。
3進数以外はよく見掛ける記法だと思います。

0x 16進数
0b 2進数
0d 10進数
0o 8進数
0t 3進数!

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めて0xcを使う方は
以下のコマンドを実行します。

M-x package-install 0xc

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name 0xc

標準機能でも実現可能

でも、基数の変換は標準機能でもできるんですね。

Emacs Lispの整数には#記法があります。

#b 2進数
#o 8進数
#x 16進数
#RADIXrINTEGER RADIX進数

M-: (eval-expression) に整数を評価させると、10進数以外にも8進数と16進数に変換された値も表示されます。

M-: 27 → 27 (#o33, #x1b, ?\C-\[)
M-: #xff → 255 (#o377, #xff, ?ÿ)
M-: #3r100 → 9 (#o11, #x9, ?\C-i)

また、C-u M-:は評価結果をバッファに書き込みますので、10進数への変換はこれで間に合ってしまいます。

参考サイト

本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。