2019年5月3日 星期五

為什麼是2147483647?


2147483647?

1. 單隻角色的最大傷害值是這個數
2. BOSS的最大HP數值也是這個數

到底這個數字是在做什麼的呢?

2147483647
-是2的31次方減1
-如果是2進制來表示,也就是1111111111111111111111111111111 (31個1)
-也意味著是32BIT系統的最大數值
-因為目前很多手機還是採用32BIT,所以這種算法就是PAD遊戲中的最大數值
-如果超過這個數字,就會出現嚴重的BUG,因此,開發團隊就會這個數字鎖起來
-所以大家看到最大的HP數值,最高的傷害數值,也就是 2147483647



-數學上,2147483647 是第8個 Mersenne prime
-要成為 Mersenne prime,條件就有2:一是質數,二是該數是2的N次方減1



-有一個很經典的BUG,也是類似這樣的
-就是食鬼的第256關
-因為食鬼是8BIT遊戲,所以最大數值就是255
-一旦超過255,也即是到了第256關,就會出現溢出問題(關卡是以水果顯示)
-也即是這樣: