将签名的10位二进制数转换为十进制



我有10位签名的二进制编号。我知道将它们转换为小数的两种外壳/狂欢方式,但尚未确定签名。

1111101010应转换为-22,而不是1002。

echo "ibase=2;obase=A;1111101010"| bc

不起作用。以下条件也没有。

echo "$((2#1111101010))"

我该怎么办?

编辑:给出了错误的预期结果;错误:-220,右:-22。

也许有一种简单的方法,但它只是简单的数学:

n=1111101010
sign=${n:0:1}
num=${n:1}
num=$((2#$num))
if [[ $sign == 1 ]]; then
   num=$(($num-512))
fi
echo $num

-22(您的示例不正确)。

相关内容

  • 没有找到相关文章

最新更新