すげー長い電車が来そうだな twitter.com/ere_dan/status…
— エレダン TTさん (@ere_dan) 2013年2月13日
32768両編成って何事京王線 twitter.com/paselanpatlin/…
— LIHOさん (@paselanpatlin) 2013年2月13日
32768両編成wwww twitter.com/Wolfrandre/sta…
— カフェイン und PANZERさん (@Wolfrandre) 2013年2月13日
ちなみに京王線32768両編成を基にして出された約655kmという数値は東海道線の東京~網干に該当する為、1両目から32768両目まで車内を移動すると所要時間は徒歩8187.5分、約136時間。休憩なしで車内を5日間歩くことになるらしい
— にちりんさん (@JMNCR) 2013年2月13日
京王電鉄の電光掲示板の32768両の表示は興味深い。列車番号や種別、編成などの情報を共用体として管理していたところにおかしな情報がまぎれて0x8000なんて数値が設定されたとか?ただ、色々な列車が該当していたようなので偶然がそこまで重なるかは疑問か。
— hidyさん (@6019am) 2013年2月13日
「32768両編成」の話、MSBを何かのフラグに使ってたとしても残り15ビットがゼロというのは解せないな。これが32778(0x800A)とかだったら何か変なフラグの立った10両編成とか理解できるんだけど。
— Hatano from Yokohamaさん (@hatano) 2013年2月13日
32768の件は、最小値定数で初期化されたデータが何らかの理由でそのまま受け渡されて表示では符号が落ちてる、ということなのかしらね。入力チェックしないのかね…
— じゃわじゃわさん (@jawa_jawa) 2013年2月13日
どうやったら32768両になるのか、文字コードからなにかしたのか、それとも16進数で0x8000と打ちこんだのか。8進数0100000なのか。考えましたけど、short型で+1されてる(ゼロ両編成は無いので)のが現実的な回答かもしれないですね。
— びわさん (@biwam) 2013年2月13日
京王が列車案内に編成両数を誤って32768両と表示してしまったことが話題になってる。たぶんshort型最大+1だよね。編成両数を確定できないからブランクか何かを入れようとしてミスったのかな。
— くろかわポタリング研究所さん (@kurokawa_pota) 2013年2月13日
京王の32768両編成の件はsigned派の人が多いようだけど、int16_tの0x8000は-32768なのに対し、uint16_tの0x8000は32768なので僕はunsignedだと主張したい
— Ryusuke SEKIYAMAさん (@rsky) 2013年2月13日
京王線のネタ。32768=0x8000。unsigned shortでN両編成のデータ格納してて16ビット目に無効/有効フラグを置いていた。 しかし表示部はそんなフラグしらねヴォケと32768表示。そんなとこだろう。 32767あるいは65535だったらもうすこし味わい深い。
— syin (よしだしんいち)さん (@syin_jp) 2013年2月13日
32768(0x8000)て出てるからこれ少なくともunsigned shortかもしかしたらlong型だよね。制御用のビット立ったまんま表示にデータ流しちゃったのかね。
— およめに鬼姫さん (@oyomeni_onihime) 2013年2月13日
時刻表の車両データはsigned short型だったのかw
— O型プログラマさん (@Blood_Type_O) 2013年2月13日
でも32767じゃないから-32768で、-は表示してないパターンかな。つまり-1両になっちゃってるのか。
— O型プログラマさん (@Blood_Type_O) 2013年2月13日
だとしたらなんでsigned shortなんだ…unsigned charでいいんじゃないのか
— Jun Matsumotoさん (@Jun_mats) 2013年2月13日
しかし、単整数型を使う意味ってあるのかな。Byte型でも255まで代入できるのだし、メモリ節約ならバイト型で255両編成まで表示できるんだからバイト型にすりゃいいし、普通にInteger扱えないハードなんていまどきないと思うんだけど。
— Sakura87さん (@Sakura87_net) 2013年2月13日
それよりもUIがきっちりその変数の最大数を表示できるように設計されているのに感心するぜ。もしかしたら本当は6桁表示されてるけど入りきら無いから-が見えないという可能性もあるが。
— Sakura87さん (@Sakura87_net) 2013年2月13日
ザックリと言うと、言語にもよるんですがシステムにはshort型という数字のデータ型がありまして、こいつは-32,768から+32767までの数値を保存できます。で、京王線は32,768輌編成なので、何らかの理由でこの下限値が入ってしまったものだと思います。
— 山根鉄平(Teppei Yamane)さん (@TedYamane) 2013年2月13日
想像するにシステム上は-32,768というデータが保持されていて、表示のロジックはマイナスを想定してないので、あたかもプラスの値で32,768輌編成かのように表示されたのかと思います。
— 山根鉄平(Teppei Yamane)さん (@TedYamane) 2013年2月13日
誤解を恐れずに言うと最近のシステムとか言語だとint型というデータ型(short型の2乗のデータ量)を使ってもshortと同じかそれ以上に早く処理できるので、あえてshort型は使わないですね。たぶんそれなりに古いシステムなんだと思います。
— 山根鉄平(Teppei Yamane)さん (@TedYamane) 2013年2月13日
京王線の電光掲示板では車両数がshort型でマイナスは表示できないということがわかった。車両数表示で万の桁まで表示できるのは驚きだね。
— s kさん (@monsho1977) 2013年2月13日
職員「運用乱れて両数不明だから"-両編成"って出しとけばいいか」→「-」と入力→入力を受け付けたプログラム「"-"ってことは"-0"か。マイナスは頭のビットを1にすればいいんだよね。"1000000000000000"と」→続く
— Shun1さん (@Nukashi_ALL) 2013年2月13日
→表示機のプログラム「マイナスxx両なんてありえないから俺は16ビットを正の数として読み込むぜ。"1000000000000000"ってことは十進数に直すと32768だな。わかった。"32768両編成"って出すぜ」
— Shun1さん (@Nukashi_ALL) 2013年2月13日
32768の件、おそらくこのシステムつくったとこの品管屋さんはガクブル状態だと思う。こんなお客さんのお客さんに見える形で不具合だしてるからめちゃくちゃに客先から言われるだろうな。
— ノノさん (@Nono_BM7) 2013年2月13日
実際作ったやつがやらかしてても、それを見つけられずに出荷しちゃった品管が悪いってことになるからねぇ。
— ノノさん (@Nono_BM7) 2013年2月13日
ザ・京王線さんぽ 全69駅掲載

コメント
コメント一覧 (4)
http://ja.wikipedia.org/wiki/2の補数
あとunsignde short型ね。
http://ja.wikipedia.org/wiki/2の補数
基本情報技術者試験の範囲ですね。
-1をsigned shortの2の補数で表現したら、0xFFFFだろ。
これをunsignedで表示したら、65535。15bitのunsignedで表示しても32767になるだけで
32768という数字は出てこないよ。
> 基本情報技術者試験の範囲ですね。
不合格だね。