1

我有一个数字(十六进制),我想要它的补码。例如,如果X = 20我想让 bash 执行否定并返回Y = ~X = DF。它不必在 bash 中,但它应该使用我可以包装到脚本中的常用命令行工具。另请注意,这些数字都应该是无符号的,我希望它们不会溢出可用的位(例如,20只有 8 位,所以输出应该是 8 位的反码)。

我使用 bash 和 bc 尝试了各种方法,但没有找到合适的组合。有任何想法吗?

(如果有人关心,目标是将 IRQ 关联设置到特定 CPU,然后将其他 IRQ 设置到所有其他处理器。)

4

2 回答 2

2
printf "%X" $((255-16#20))

16#告诉 bash 该数字以 16 为基数。

于 2010-03-07T20:27:59.043 回答
1

啊,我是个白痴。

printf "%x\n" $(echo $((~ 16#$INPUT)))

做的伎俩,或足够接近的伎俩。

于 2010-03-07T20:26:59.103 回答