对Bash中的无符号数求反

对Bash中的无符号数求反,bash,hex,affinity,complement,Bash,Hex,Affinity,Complement,我有一个数字(十六进制),我想要它的一的补码。例如,如果X=20我希望bash执行一个求反并返回Y=~X=DF。它不必在bash中,但它应该使用一个通用的命令行工具,我可以将它包装成脚本。还要注意的是,这些数字都应该是无符号的,我希望它们不会溢出可用的位(例如,20将只有8位,因此输出应该是8位1的补码) 我尝试过使用bash和bc的各种方法,但没有找到正确的组合。有什么想法吗 (如果有人在意,目标是将IRQ关联设置为特定CPU,然后将其他IRQ设置为所有其他处理器。)啊,我是个白痴 print

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

我尝试过使用bash和bc的各种方法,但没有找到正确的组合。有什么想法吗

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

啊,我是个白痴

printf "%x\n" $(echo $((~ 16#$INPUT)))
做这个把戏,或者离这个把戏足够近

printf "%X" $((255-16#20))
16
告诉bash数字在基数16中。

不需要
$(echo):
printf“%x\n”$(~16#$INPUT))`