-PR-
解決済み

VHDLのsignedとunsignedの違いは?

  • すぐに回答を!
  • 質問No.51716
  • 閲覧数1492
  • ありがとう数5
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 86% (174/201)

まえまえから疑問に思っていたので、教えてください。
VHDL(ハードウェア記述言語)の記述で、
ポートの宣言に
「signed」のときと「unsigned」のときがあるのですが、
違いを詳しく教えてください。
以前、誰かに「どちらかは2の補数を使っている」と聞いたのですが、
どちらなのかがわかりません。

また、2の補数以外で表現するとき、負の数はどうすればいいのでしょうか?
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル13

ベストアンサー率 37% (570/1525)

VHDLは御存知ですね。

signed/unsignedはIntergerのサブタイプと考えた方が良いでしょう。

subtype unsigned is integer range 0 to 4294967295 ;
subtype signed is integer range -2147483648 to 2147483647;

実際はちょっと違うので本当の宣言を見てください。std_logic_unsignedパッケージ、std_logic_arithパッケージに宣言があると思うのですが。

2の補数表現されるのはsignedです(integerも)。
unsignedには負の数はありません。
お礼コメント
oddo

お礼率 86% (174/201)

toysmithさん、回答ありがとうございました。
VHDLは本当に大まかなところは習いましたが、
知っているというほどではありません(^^;
Integerのサブタイプだったんですね。
VHDLの入門書には出てこないので、困っていました。
勉強会に間に合いました。
本当に助かりました。
投稿日時 - 2001-03-16 09:09:23
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル13

ベストアンサー率 26% (511/1924)

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で違ってたらごめんなさい。
お礼コメント
oddo

お礼率 86% (174/201)

shigatsuさん、早速の回答ありがとうございました。
勉強していていつもいきづまっていたのですが、
だいぶ理解できました。
C言語でもよく使われるみたいですね。
投稿日時 - 2001-03-16 09:06:27


このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ