By Xah Lee. Date: . Last updated: .

Here's several ways to convert between Hexadecimal to Decimal in emacs.

## Using calc

• Alt+x `calc`.
• Type any number. For example, 10.
• Type “d6” to turn the display into hexadecimal form.
• Type “d0” to turn the display into decimal form.

To type a hexadecimal number, type `#`, then type “16#aa” for the hexadecimal “aa”.

## Using Emacs Lisp

Here's how to convert decimal to hexadecimal:

```;; decimal to hex. Returns 「a」
(format "%x" 10)
```

Here's how to convert hexadecimal to decimal:

```;; hexadecimal 「a」 to decimal. Returns 「10」.
(format "%d" #xa)
```

## Emacs Lisp Command

Here's a elisp command that prints the decimal value of a hexadecimal string under cursor.

```(defun xah-show-hexadecimal-value ()
"Prints the decimal value of a hexadecimal string under cursor.

Samples of valid input:

ffff → 65535
0xffff → 65535
#xffff → 65535
FFFF → 65535
0xFFFF → 65535
#xFFFF → 65535

more test cases
64*0xc8+#x12c 190*0x1f4+#x258
100 200 300   400 500 600

URL `http://xahlee.info/emacs/emacs/elisp_converting_hex_decimal.html'
Version 2020-02-17"
(interactive )
(let (\$inputStr \$tempStr \$p1 \$p2 )
(if (region-active-p)
(progn
(setq \$p1 (region-beginning))
(setq \$p2 (region-end)))
(progn
(save-excursion
(skip-chars-backward "0123456789abcdefABCDEF#x")
(setq \$p1 (point))
(skip-chars-forward "0123456789abcdefABCDEF#x" )
(setq \$p2 (point)))))
(setq \$inputStr (buffer-substring-no-properties \$p1 \$p2))
(let ((case-fold-search nil))
(setq \$tempStr (replace-regexp-in-string "\\`0x" "" \$inputStr )) ; C, Perl, …
(setq \$tempStr (replace-regexp-in-string "\\`#x" "" \$tempStr )) ; elisp …
(setq \$tempStr (replace-regexp-in-string "\\`#" "" \$tempStr )) ; CSS …
)
(message "input 「%s」, Hexadecimal 「%s」 is 「%d」" \$inputStr \$tempStr (string-to-number \$tempStr 16))))```