在将十六进制转换为二进制时让 bc 不删除尾随零

Have bc not drop the trailing zeros while converting hex to binary

我有一个 bash 脚本可以将十六进制转换为二进制,但我想要 8 位,而不管作为参数提供的数字是多少。例如十六进制 00 应该是 00000000 而不是 0 或者十六进制 01 应该是 00000001。这是脚本,但我不知道如何让 bc 执行此操作。这是可能的还是我应该手动完成?

这是我的脚本:

#!/bin/bash
for j in $@
do
    BIN=$(echo "obase=2; ibase=16; $j" | bc )
    echo $BIN
done

我不知道 bc 是否支持这种行为,但您可以替换

echo $BIN

printf "%08d\n" "$BIN"