表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
13/25

−0℃

 まぁ、そういうCMがあるんで。別に批判とかじゃないです。


 昔々、計算機で負の値を扱うのにはいくつか方法がありました。

 一つは、符号桁を設ける方法です。

 たとえば、000という3桁の2進数を考えます。

 これで001だと、1を現わすものとします。それに対して101だと、-1を現わすものとします。で、001+101ってのは、1-1=0のはずですが、001+101=110となり、-2になっちゃいます。桁を別扱いしていろいろやってやんないといけない。不便です。


 あるいは1の補数ってのがあります。001の各ビットを反転させた、110が-1を現わすものです。001+110=111になります。この111って何なんでしょう? 簡単にこの各ビットを反転させると、000になります。つまり、111ってのは-0なんです。0と-0が別ってのは不便。てか、それって何? となります。それが必要なら、それを使った方が便利なんですが。だいたいそういうのは使わない。

 昔々は、「0と0を比べてるはずなのに、なんでおかしくなるんだ?」とかいうこともありましたが、それは「0と-0を比べてた」からだったりします。コンパイラかどっかで0と-0が同じという処理を入れといてくれないと、そりゃ別の値という扱いになります。


 んで、今、たぶん普通に使われてるのは2の補数ってやつ。細かいことは面倒だから飛ばして、1の補数に対して、1を足してやったものを求めると2の補数になります。

 この場合、1の補数での001+110の結果である111に+1してやると、1ビット、オーバーフローするけど、それを無視すれば000になります。もちっと戻って、001の2の補数を求めると、1の補数が110だから、それに1を足した111が-1になります。これで、001+111を計算すると、1ビット、オーバーフローするけど、それを無視すればやっぱり000になります。0と-0とが別物になんない。0は0。んー、便利。


 まぁ、そんことを思い出したので、書いときました。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ