32767【半蔵門ビジネス雑談】20180628
32767。
この数字でピンとくる人は、バブル期くらいのプログラミング経験者の可能性が高い。
これは16ビットマシンでプログラミングする際、16ビットで表現できる数値の最大値。データを扱うためにテーブルと呼ぶメモリ上の配列を使った際に、テーブルの何番めかを示すインデックスを使うときの16ビットで扱えるインデックス値の上限を表す数字だ。
ちょっとわかりにくいかもしれないが、下の表で、右列がビット数、左列がそのビット数で表すことができるデータの数。1ビットなら1種類、3ビットなら4種類、8ビットなら128種類、そして16ビットなら32768種類の数値を表現できる。コンピュータ内部では、0から始まるので、32768種類で表せる最大の数値は、32767ということになる。
例えば、8192種類の数値を格納したりして扱いたければ、14ビットが必要になる。
データを入れる場所を、32768用意してデータを出し入れするためには。テーブル[N番目]に何かの値を入れることになる。何番目に入っているかを示すNがインデックスだ。
16ビットマシンで、32767までカウントして、あと1を加算すると、32768になるが、これはコンピュータ上では、2進数の10000000000000000となり、16ビットでは繰り上がった1が溢れてしまいコンピュータが認識できる値は、0000000000000000となり、正しいテーブルの場所を示せなくなってしまうのだ。それによりプログラムが誤動作してしまうことも頻繁だった。
だから32ビットマシンが登場した時は、「これでもう数値の限界を考えなくてもよい」(本当は単に制限値が大きくなっただけなのだが)と喜んだものだ。
そして時代は変わって21世紀も18年を過ぎた。
Macでは32ビットが過去のものになろうとしている。
Macで一部アプリが使えなくなる!どのアプリが使えなくなるか確認する方法は?
Apple社は、High Sierra10.13.4以降では、32ビットのアプリケーションはApp Storeに登録できなくなる。そしてすでに、32ビットアプリケーションを動かそうとすると警告がでる。
これはBlackberryのユーティリティを動かそうとしたときのメッセージだ。このアプリケーションは32ビット対応なので、警告が表示される。他にも多くのアプリケーションが32ビットなので、警告される。方策としては、そのアプリケーションの64ビット版を持ってこないといけない。おそらく次期バージョンでは、動作しなくなると見込まれている。