1. ホーム
  2. c

[解決済み】Biased Notationとは何ですか?

2022-02-21 09:39:01

質問

と読んだことがあります。 "符号なしintのようなものだが、-(2^(n-1) - 1)でoffset、ここでnは数字のビット数である。余談ですが 技術的にはどのようなバイアスも選択可能ですが、ここで紹介した選択は極めて一般的なものです" -。 http://inst.eecs.berkeley.edu/~cs61c/sp14/disc/00/Disc0.pdf

しかし、何が言いたいのかがわからない。どなたか例を挙げて説明していただけませんか?また、one's compliment、sign and mag、two's complimentなど他の選択肢もある中で、どのような場合に使うべきなのでしょうか?

どのように解決するのですか?

表現とは、情報を符号化し、その符号化された情報から詳細や推論を抽出しやすくするための方法です。

最近のCPUの多くは、quot;2進数の補数表記を用いて、数字を表現しています。 これは、このような値に対する演算(加算、減算、乗算、除算など)を高速に行えるデジタル回路の設計が容易なためです。 また、2進数の補数には、演算を実装するハードウェアを変更せずに、最上位ビットを2のべき乗(符号なし数)または符号ビット(符号付き数)として解釈できるという優れた特性もあります。

例えば、60年代には、4ビットのアドレス指定可能なニブルに格納された2進コード化された10進数のセットとして数字を表現するマシンが非常に一般的でした(IBM1620と1401がその例です)。 つまり、同じ概念や値でも異なる方法で表現することができるのです。

A 偏り は、(数値の)どんな表現を選んだとしても、その値に一定のバイアスを加えていることを意味します。 おそらく、これは何かをより効果的に行うために行われるのでしょう。 私はアセンブリとCコーディングをたくさんしていますが、値にバイアスをかける必要性はあまり感じません。

しかし、よくある例があります。最近のCPUはIEEE浮動小数点を主に実装しており、浮動小数点数は符号、指数、仮数で格納されます。 指数は2の累乗で、0を中心に対称ですが、私の記憶が正しければ、Nビットの指数に対して2^(N-1)のバイアスがかかっています。

このバイアスにより、同じ符号の浮動小数点値は、特別な浮動小数点命令ではなく、標準的なマシンの2進補完命令を使って、等しい/小さい/大きいを比較できるようになり、実際の浮動小数点比較の使用を避けることができる場合があります。 (つまり、浮動小数点演算の使用を避けることができる場合があります。 http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm をご覧ください)。 [ご指摘いただいた@PotatoSwatterさんに感謝します。 私の最初の回答が不正確だったため、これを掘り起こすことにしました] 。