2010-04-09 43 views

回答

20
perl -MConfig -e 'print "$Config{byteorder}\n";' 

請參閱Perl documentation

+1

+1這顯然是「正確」的方式。另一種方式是(雖然直覺)只是哈克。 :-P – 2010-04-09 21:04:11

+0

的確,儘管對於「這個系統是大的還是小端的?」這個問題得到了一個布爾回答。您需要對Config模塊返回的值進行進一步分析。 – Sean 2010-04-09 21:16:03

+3

@Sean:問題在於(正如引用的文檔指出的那樣),答案不是二元的 - 對於使用'3412'作爲字節順序的PDP-11這樣的機器,也存在'奇怪'的順序這既不是大端的也不是小端的。如果第一個字節是1,則可以假定(具有中等安全性),它是小端;如果是4或8,則可以假定爲大端;如果不是這些,那麼也許是時候去購買一臺新機器了。 – 2010-04-09 21:34:52

4

我想你可以這樣做:如果你的系統有一個非標準(既不大端也不小端)字節順序(例如,PDP-11)

$big_endian = pack("L", 1) eq pack("N", 1); 

這可能會失敗。

+0

這也是我的建議。 :)除了我會使用更多位填充比二進制1。 – Axeman 2010-04-09 21:02:04

相關問題