2012-07-29 76 views
1

我知道這是一個重複的問題在這裏:LinkSHA1 - 將字符串到整數

我試着做一些更多的研究,如果可能的或沒有,所有的。 ,我發現這是可能的。

我想要得到的唯一東西是function,我需要在shell腳本中使用convert a string to an integer。 SHA1是一個160位長整數。

在shell腳本上做這件事的動機:試圖學習它。

比如我在一個變量存儲像這樣

store=`sha1 $blah | cut -d ' ' -f 1` 

獲取文件的sha1它給我的哈希值。但是如果我想將它轉換爲整數呢。

回答

0

不可能。對於shell,一切都是一個字符串。如果你離開POSIX,並聲明shell變量具有整數類型,整數的寬度通常是底層C庫的寬度,即32或64位。與160位SHA1哈希不適合。 但是,有bcdc實用程序,它們允許進行任意的精確算術運算。 如果你只是想十六進制字符串轉換爲十進制數,使用:

$ bc << EOF 
obase=10 
ibase=16 
DA19BAC0F234635B6DE9362369DA07A6A4162865 
1245133775210903227706347819370390008085985241189 
EOF 

注意,您必須使用大寫十六進制數字,因爲bc不會承認A-F。

+0

請問這是什麼意思? – user1524529 2012-07-29 15:39:03

+0

任意精度意味着它們可以用任意長度的數字進行算術運算,如160位十六進制數字。 – Jens 2012-07-29 15:46:15

+0

謝謝! Dint知道! – user1524529 2012-07-29 15:48:03