Dengan bash
(atau shell apa pun, asalkan printf
perintah tersedia (perintah POSIX standar yang sering dibuat di shell)):
printf '%x\n' 85
Dengan zsh
, Anda juga bisa melakukan:
dec=85
hex=$(([##16]dec))
Itu berfungsi untuk basis dari 2 hingga 36 (dengan 0-9a-z
case case-digit).
Dengan ksh93
, Anda dapat menggunakan:
dec=85
base54=$(printf %..54 "$dec")
Yang berfungsi untuk basis dari 2 hingga 64 (dengan 0-9a-zA-Z@_
sebagai digit).
Dengan ksh
dan zsh
, ada juga:
$ typeset -i34 x=123; echo "$x"
34#3l
Meskipun itu terbatas pada basis hingga 36 di ksh88, zsh dan pdksh dan 64 di ksh93.
Perhatikan bahwa semua itu terbatas pada ukuran long
bilangan bulat di sistem Anda ( int
dengan beberapa shell). Untuk yang lebih besar, Anda bisa menggunakan bc
atau dc
.
$ echo 'obase=16; 9999999999999999999999' | bc
21E19E0C9BAB23FFFFF
$ echo '16o 9999999999999999999999 p' | dc
21E19E0C9BAB23FFFFF
Dengan pangkalan yang didukung mulai dari 2 hingga beberapa angka yang diperlukan oleh POSIX harus setidaknya setinggi 99. Untuk pangkalan yang lebih besar dari 16, digit lebih besar dari 9 direpresentasikan sebagai angka desimal 0-empuk yang dipisahkan oleh ruang.
$ echo 'obase=30; 123456' | bc
04 17 05 06
Atau sama dengan dc
( bc
dulu (dan masih ada pada beberapa sistem) pembungkus dc
):
$ echo 30o123456p | dc
04 17 05 06