質問: まえまえから疑問に思っていたので、教えてください。 VHDL(ハードウェア記述言語)の記述で、 ポートの宣言に 「signed」のときと「unsigned」のときがあるのですが、 違いを詳しく教えてください。 以前、誰かに「どちらかは2の補数を使っている」と聞いたのですが、 どちらなのかがわかりません。 また、2の補数以外で表現するとき、負の数はどうすればいいのでしょうか?
回答: VHDLは判らないのですが、コンピュータ用の言語でsigned/unsigned となれば、singed の方が符号ありなのでブラスマイナスの表現ができる方です。 例えばC言語などでは 実際の値 0,1,2 - 127, 128 - 254,255 signed char 0,1,2 - 127,-127 - -2, -1 unsigned char 0,1,2 - 127, 128 - 254,255 という感じになります。 最上位ビットが0なら正の数、1なら不の数という表現ですね。 VHDLで違ってたらごめんなさい。