2010-03-07 15 views
1

我有一個數字(十六進制),我想要它的補碼。例如,如果X = 20我希望bash執行否定並返回Y = ~X = DF。它不必在bash中,但它應該使用一個通用的命令行工具,我可以將其包裝到腳本中。還要注意這些數字應該都是無符號的,我寧願它們不會溢出可用的位(例如,20只會是8位,所以輸出應該是8位的補碼)。在Bash中取反無符號數字

我已經嘗試過各種使用bash和bc的東西,但還沒有找到合適的組合。有任何想法嗎?

(如果有人關心,我們的目標是到IRQ關係設置一個特定的CPU,然後其他的IRQ設置爲所有其他處理器。)

回答

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

16#的是告訴bash,該數量是在基部16

1

啊,我是個白癡。

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

是否有訣竅,或足夠接近竅門。

+0

的'$(回波)是沒有必要的:'printf的 「%X \ n」 個$((〜16#$ INPUT) )' – 2010-03-08 06:05:23

相關問題