作者vgod (vgod)
看板b95902HW
標題[作業] 關於計概作業三..
時間Fri Oct 20 20:52:17 2006
剛才想起來我在上課時忘了提一件事, 這可能會讓你們在修改某些資料時碰上麻煩..:p
事情是這樣的,話說遊戲中的數值如果只有1 byte時
那就很容易找到它,在hex editor裡看到的就是00 ~ FF ( 0 ~ 255 )
但如果它是個2 bytes,甚至4 bytes的integer時呢?
以錢為例,當你有1000元時,
16進位的換算告訴我們在電腦裡應該是會看到03 E8 (假設是2 byte integer)
但如果你真的去存檔裡用這個值找,你是找不到它正確的位置的!
奇怪的是,你要用E8 03去找才能找到
這是為什麼呢?
原因是我們現在用的Intel x86相容CPU,都是採用little endian的儲存方式,
而我們一般表示數字都是用big endian來表示!
所以你就會發現存檔裡的數字都是反過來存的...
至於big endian和little endian到底是什麼呢?
老師上課應該有講過XD 我就不多提啦
如果不清楚的,可以參考這個網頁
http://libai.math.ncu.edu.tw/bcc16/pool/1.33.shtml
它寫得很清楚,甚至連這兩個詞的由來都有:p
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.26