# # zsh-based conversion between numeric bases # # Copyright © 1994–2017 martin f. krafft # Released under the terms of the Artistic Licence 2.0 # # Source repository: http://git.madduck.net/v/etc/zsh.git # function baseconv() { if [ $# -ne 3 ]; then echo Usage: ${0##*/} ibase obase number return 1 fi typeset -li $2 var eval ((var=${1}#${3})) echo ${var#*\#} } typeset -lA bases=(b 2 o 8 d 10 h 16) typeset -l {k,v}{1,2} for k1 v1 in ${(kv)bases}; do for k2 v2 in ${(kv)bases}; do [[ $k1 == $k2 ]] && continue eval alias ${k1}2${k2}="'baseconv $v1 $v2'" done done