47

誰もが間違いなく知っているように、ISO C 標準 (および C++ も、C 側にもっと興味があると思いますが) では、符号付き数値の 3 つの基本的な表現が許可されています。

  • 2 の補数;
  • 1 の補数; と
  • 符号/大きさ。

ウィキペディアのエントリによると、60 年代の IBM 7090 では符号/大きさが使用され、1 の補数は PDP-1、CDC 160A、および UNIVAC 1100 で使用されており、これらはすべて 60 年代にさかのぼります。

50 年前よりも少し前に登場した、これらの代替表現を持つ C (または基礎となるハードウェア) の他の実装はありますか?

もはや存在しないマシンの標準に何かを残すのは少しもったいないようです.

4

2 に答える 2

37

私が見つけることができる最新の例は、1 の補数演算を使用する UNIVAC に基づくUNISYS 2200シリーズです。1986 年から 1997 年にかけてさまざまなモデルが製造されましたが、OS は2015 年になっても活発に開発されていました。ここに見られるように、彼らはCコンパイラも持っていました。

現在でも使用されている可能性が高いようです。

于 2012-09-05T09:07:46.417 に答える
6

存在しないという決定的な証拠はありませんが、見たことがありません。私の知る限り、Cが標準化されるずっと前に、2の補数以外のハードウェアはすべて廃止されていました。

おそらく、証拠を収集するための最良の方法は、2の補数以外のシステムに接続されている標準で、競合する要件やその他の完全なバグを探すことです。そのような実装がこれまでに作成されていない場合は、誰かが実際に実装しようとしたときに明らかになる仕様に見落としがある可能性があります。

于 2012-09-05T08:11:08.120 に答える