printf "Decimal %s → Binary: " "$1"
fi
printf "%s" "$p"
- printf "obase=2; %s" "$1" | bc
+ printf "%s 2o p" "$1" | dc
elif printf "%s" "$1" | grep -qE '^([0-9A-Fa-f]+|0x[0-9A-Fa-f]+)$'; then
if [ "$m" -eq 0 ]; then
printf "Hex %s → Binary: " "$1"
fi
printf "%s" "$p"
- printf "ibase=16; obase=2; %s" "$(printf "%s" "$1" | sed 'y/abcdef/ABCDEF/; s/^0x//')" | bc
+ printf "16i %s 2o p" "$(printf "%s" "$1" | sed 'y/abcdef/ABCDEF/; s/^0x//')" | dc
else
printf "Error: '%s' is not a valid decimal or hexadecimal number\n" "$1" >&2
printf "Binary %s → Decimal: " "$1"
fi
t=$(printf "%s" "$1" | sed 's/^0b//')
- printf "ibase=2; %s / %s" "$t" "$k" | bc | tr -d '\n' && printf "%s\n" "$p"
+ printf "2i %s %s / p" "$t" "$k" | dc | tr -d '\n' && printf "%s\n" "$p"
elif printf "%s" "$1" | grep -qE '^([0-9A-Fa-f]+|0x[0-9A-Fa-f]+)$'; then
if [ "$m" -eq 0 ]; then
printf "Hex %s → Decimal: " "$1"
fi
- t=$(printf "%s" "$1" | sed 's/^0x//')
- printf "ibase=16; %s / %X" "$(printf "%s" "$t" | sed 'y/abcdef/ABCDEF/')" "0b$k" | bc | tr -d '\n' && printf "%s\n" "$p"
+ t=$(printf "%s" "$1" | sed 'y/abcdef/ABCDEF/; s/^0x//')
+ printf "16i %s %s / p" "$t" "$k" | dc | tr -d '\n' && printf "%s\n" "$p"
else
printf "Error: '%s' is not a valid decimal or hexadecimal number\n" "$1" >&2
if [ "$m" -eq 0 ]; then
printf "Decimal %s → Hex: " "$1"
fi
- printf "%s%X\n" "$p" "$1"
+ printf "%s" "$p"
+ printf "%s 16o p" "$1" | dc
elif printf "%s" "$1" | grep -qE '^0b[0-1]+$'; then
if [ "$m" -eq 0 ]; then
printf "Binary %s → Hex: " "$1"
fi
- printf "%s%X\n" "$p" "$1"
+ printf "%s" "$p"
+ printf "2i %s 10000o p" "$(printf "%s" "$1" | sed 's/^0b//')" | dc
else
printf "Error: '%s' is not a valid binary or decimal number\n" "$1" >&2