$hexnumber = 0x09C343C2E95ACABA;
print ("$hexnumber");
我得到的打印響應爲703480471217687226
。任何人都可以幫助我解決這個問題。如何在標量中存儲長十六進制數並在perl中打印
$hexnumber = 0x09C343C2E95ACABA;
print ("$hexnumber");
我得到的打印響應爲703480471217687226
。任何人都可以幫助我解決這個問題。如何在標量中存儲長十六進制數並在perl中打印
這是預期的。你有什麼問題?如果打開警告你會發現下面的警告:
Hexadecimal number > 0xffffffff non-portable at test.pl line 4.
您可以使用BIGINT編譯與可以處理的數字那麼大的一個版本替換十六進制的功能。
use bigint qw/hex/;
六角
覆蓋內置的十六進制()方法可以處理 大整數版本。這通過將其導出至當前的 包來覆蓋它。在Perl v5.10.0和更高版本中,這不是必需的,因爲每當bigint 編譯指示處於活動狀態時, hex()在當前範圍內被詞彙覆蓋。 - perldoc
您可以用printf打印出十六進制數字:
printf "%X", $hexnumber; # or %x for lower case a-f digits
但請注意,這不是移植到使用32位整數皮爾斯。 也許你真的只是想把它作爲一個字符串存儲在第一位?
是的,你是正確的,如果我想將十六進制數字存儲在一個變量中,並且希望以相同的形式檢索回來,我需要將它存儲爲最初的sting。 ..我現在明白了,謝謝你。 –
你應該顯示*使用十六進制功能的例子 – ysth