0

現在、モジュールの入力からの 16 ビット数値を論理変数の 1 つに格納しようとすると問題が発生します。テスト ベンチですべてのビットを High に設定すると、0000000000000001 という値が得られます。PS: 申し訳ありませんが、ここにコードを挿入する方法がわかりません....

私のコードを以下に示します。

http://pastebin.com/cZCYKJqV

4

1 に答える 1

1

あなたの問題は次の行にある可能性が高いと思います:

regy = (!regy)+1;

regy16 ビット値です。(!)マルチビット値で否定演算子を使用することは、 と同等(value != 0)です。したがって、regyゼロ以外の値はすべてregy1 に設定されます。

すべてのビットを反転して 1 を追加しようとしている場合は、~演算子を使用する必要があります。

例:

regy = (~regy)+1;
于 2012-12-22T03:27:18.273 に答える