对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))`