İle bash
(veya herhangi bir kabuk, printf
komutun kullanılabilir olması koşuluyla (genellikle kabuklara yerleştirilmiş standart bir POSIX komutu)):
printf '%x\n' 85
İle zsh
şunları da yapabilirsiniz:
dec=85
hex=$(([##16]dec))
Bu, 2'den 36'ya kadar olan bazlar için işe 0-9a-z
yarar ( rakam olarak büyük / küçük harfe duyarsız).
Ile ksh93
kullanabilirsiniz:
dec=85
base54=$(printf %..54 "$dec")
Hangi 2 ile 64 arası bazlar için çalışır ( 0-9a-zA-Z@_
rakamlarla).
İle ksh
ve zsh
de vardır:
$ typeset -i34 x=123; echo "$x"
34#3l
Bu, ksh88’de 36’ya, zsh ve pdksh’ye, ksh93’de ise 64’e kadar sınırlı.
Tüm bunların long
sisteminizdeki tamsayıların boyutuyla sınırlı olduğunu unutmayın ( int
bazı kabuklarla birlikte). Daha büyük bir şey için, bc
veya kullanabilirsiniz dc
.
$ echo 'obase=16; 9999999999999999999999' | bc
21E19E0C9BAB23FFFFF
$ echo '16o 9999999999999999999999 p' | dc
21E19E0C9BAB23FFFFF
POSIX'in gerektirdiği 2 ila bir sayı arasında değişen desteklenen tabanların en az 99 olduğu kadar yüksek olması. 16'dan büyük olan tabanlar için 9'dan büyük sayılar boşlukla ayrılmış 0 basamaklı ondalık sayılar olarak gösterilir.
$ echo 'obase=30; 123456' | bc
04 17 05 06
Ya da dc
( bc
eskiden beri (ve hala bazı sistemlerde) bir sarmalayıcı olmak için dc
)
$ echo 30o123456p | dc
04 17 05 06