這裡用到了array.array('h', [1])來測試大小端,[1]可以轉化為十六進製制的0x0001,佔兩位,00位高位, 01位低位,通過第一位就可以判斷大小端。
如果是小端,則轉化為bytes應該如下:
>>> array.array('h', [1]).tostring()b'\x01\x00'
>>>
如果是大端,則如下:
>>> array.array('h', [1]).tostring()b'
\x00\x01
'>>>
完整**如下:import
array
defis_little_endian():
a = array.array('
h', [1]).tostring()
if a[0] == 1:
return
true
else
:
return false
雜湊的一種用法 判斷相等
在輸入資料量比較大,時間要求比較高的情況下,判斷相等可以考慮雜湊的方法,比如,輸入10w 100w,時間要求4000ms 7000ms,用普通方法肯定要tle的,這時就需要hash。首先要構造hash表,這裡根據輸入量來確定hash table的大小,比如poj3349中輸入量最大12w,所以最壞情...
判斷機器大小端的兩種實現方法
大端模式 big endian 是指資料的低位 就是權值較小的後面那幾位 儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址 中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 小端模式 little endian 是指資料的低位儲存在記憶體的低位址...
判斷機器大小端的兩種實現方法
大端模式 big endian 指資料的低位 就是權值較小的後面那幾位 儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 小端模式 little endian 指資料的低位儲存在記憶體的低位址中,而...