2003lk入門

トップに戻る

をクリックすると非真理設定が非表示になります。ページを再読み込みすると戻ります。


ksi.1 2003'd ferlesylを知る

lexn.1 数の表現

2003fは計算を行う装置なのですから、当然数を扱うことができます。2003fがどのようにして数を扱うかについて説明していきます。

現世の用語に詳しい人のための1行解説:32bit整数、負数は2の補数表現

[スイッチ](lysol)が32個横一列に並んでいる様子を想像してください。それぞれのボタンにあるのは押されているか押されていないかの2択ですが、これが32個集まると[2の32乗](2-inie-32)、つまり4294967296通りの状態を表すことができます。

さて、879というように数を書いたとき、7の位置には9の位置の10倍の価値があり、8の位置には7の10倍の価値があります。故に、879は(8と7と9を足し合わせたものでなく)[八百](xanlekqa)と[七十](anxenqa)と[九](fentiqa)を合わせたものになるのです。

これを先ほどのスイッチ列に応用することができます。右端のスイッチの価値を1、その左を2、そのさらに左を4、というふうに決めていくと、32個のスイッチで0から4294967295までの数を扱うことができます。

では、負の数を扱う時にはどうすればいいでしょうか。実は、左端のスイッチの価値を2147483648ではなく-2147483648リパライン語の減算記号のASCII転写は|であることに注意。あと、厳密に言うと負数のリパライン語表記ってまだ設定していなかった気がするんよねと解釈してあげると、-2147483648から2147483647までの数を扱うことができるようになるのです。

これは、4294967296を周期として整数を同一視することと同じです。例えば、-12と(それに4294967296を足した)4294967284 を同一視し、17と(それに4294967296を足した)4294967313を同一視することで、どちらで解釈したとしても、足し算・引き算は同じ挙動で動作できることが分かります。

  11111111111111111111111111110100 → -12
+ 00000000000000000000000000011101 →  29
 100000000000000000000000000010001 →  17 

  11111111111111111111111111110100 → 4294967284
+ 00000000000000000000000000011101 →         29
 100000000000000000000000000010001 → 4294967313

ここで、一番左に書いてある灰色の1は便宜上のもので、実際にはありません。


トップへ   次のページへ