先日京王線で
「32768両編成」
と電光掲示板に掲載されるトラブルがあったそうな:

http://matome.naver.jp/odai/2136074097394394601

まぁ、32768を16進数表記にすると0x8000なので、なんてことはない。
short型の負の最大桁数が符号無し変換されて表示されたってだけのようです。
#いや、それはそれで異常な事態なので問題ではあるのですが

それはそうと、ネットでは
「なんで、車両の編成数にshort型(-32768~32767)を使うんだよ!char型(-128~127)でいいんじゃね?」
「むしろ、BYTE型(0~255)だろ。」
とか色々論じられていますがナンセンスです。

世界最大長の編成は、ギネスブックに載っているだけで700両超だそうで、
いっそ、2バイトで管理しておけば十分じゃね?と判断するのは有りだと思います。

また、数値が0x8000だとしても、unsignedで表示されているわけで、
short型と言うよりも、WORD型です。
仮にsignedでマイナス記号が表示されていないだけなのだとしても、
ここまで長大ならば、1ビット付いていようが付いていまいがあまり関係ないです。

等と、論じられていますが、
ぶっちゃけ、データ量をシビアに切り詰める必要があるとかでなければ、
使っているプロセッサのレジスタサイズに合わせた方が、
プロセッサの仕様効率が上がるので、そっちを優先します。

たとえば、32bitのintel系のCPUで、
16bitのデータをメモリーから取り出すのと、
32bitのデータを取り出すのでは、後者の方が圧倒的に早いです。
さらに、16bitだとアライメントにあっているか否かでさらに動作にペナルティーが生じます。

理由はintel系のCPUは16bitのデータを取得するときには、
まず32bitでデータを取得して、ビットマスクやシフト演算で目的の16bitデータを取り出すという、
内部動作をしているから・・・とintel CPUの最適化マニュアルに書いてありました。

そういうわけで、特にデータ量に問題が無ければ、
CPUのレジスタサイズに合わせるのが吉です。