ノーホーマー・ノーサヴァイヴで128点で点数がオーバーフローする理由と恐ろしき真実
ニンジャスレイヤーのノーホーマー・ノーサヴァイヴの再放送が終わりました。
書籍で読んだ当初はなぜ128点でオーバーフロウするわからなかったのですが最近は勉強しているので理由を考えてみました。
https://twitter.com/NJSLYR/status/1228314197211086854
あらすじ↓↓↓
僕の考えが正しければここには恐ろしき真実があります。
ノーホーマー・ノーサヴァイヴで128点でオーバーフローする理由と恐ろしき真実
コンピューターの世界では8bit=1byteという単位が標準的です。
そしてbitというのは2進数の世界。2進数は0か1で数値を表現する世界です。
ニンジャスレイヤーでよく見る01010100111010101。これがまさに2進数の世界でbitの世界なのです。
ちなみに今は1bitの話をしましたが2bitになると。桁が2桁になり表現できる値も増加します。
00 = 0
01 = 1
10 = 2
11 = 3
こんな風に数値を増やしていくと7桁、7bitで表現できる最高値が
1111111 = 127
なので127までしか数値を表現できず128点目でオーバーフローを起こすのです。
・・・であればそれで話は終わりなのですが、だけど待ってください!
さきほどコンピューターの世界では8bit=1byteという単位が標準的だとお話いたしました。
8桁、 8bitであれば
01111111 = 127
の次は
1000000 = 128
で128は表現できるんですよ!!!!
コンピューターの標準の8bitであれば!!!
にもかかわらずノーホーマー・ノーサヴァイヴでは128点でオーバーフローしてしまった。これはなぜか???
・・・
それは
10000000
の1の部分が何かに使われているから。何かに使われているから8桁目が使えずにオーバーフローを起こしている。
僕も最初これがなんだったか忘れていたんですけれど・・・。
この1の部分・・・。
思い出しました・・・。
マイナスです!
マ イ ナ ス で す !
コンピューターの世界ではマイナスを使いたいときは先頭の数値の1をマイナスとみなします。
本来であれば
10000000 = 128
で問題ないのですがマイナスを使いたいなと思ったら先頭の1をマイナス記号とみなすので
10000000 = -128
とみなします。
つまりね。この野球!!ノーホーマー・ノーサヴァイヴ!!
得点にマイナスが表記されるんですよ!!!!!!!!
だから本来の8bitの最高数
11111111 = 255 ではなく
01111111 = 127
でオーバーフローしちゃうの!!!
僕は気が付いてしまいました。ニンジャスレイヤー的ベースボールには相手チームの得点をマイナスにするなんらかの戦略が存在することに!!
もしもマイナスの表記がなければ8桁目は
1000000 = 128
オーバーフローするのは
11111111 = 255
に+1して256。
ニンジャスレイヤーは256点とらなければならなかったのです。
いかにニンジャスレイヤーといえども256点は取れないでしょうからきっと負けていたことでしょう。
しかし恐ろしいことにノーホーマー・ノーサヴァイヴでは相手チームの得点をマイナスにするなんらかの恐ろしい戦略が存在します。(断言)
しかしその結果得点は127点までしか表示されず本来256点でオーバーフローのところをわずか(?)128点で数字がオーバーフローしてしまったのです。
これはすべて得点をマイナス表記するなんらかが存在するから!!!
深夜に書いてるので本当にあってるかよくわからないですが多分理論はあってるはず。
間違ってたらセプクします。
というわけで野球の恐ろしさに気が付いてしまったところで今日は寝ます。
カラダニキヲツケテネ。