1

私はコンピューター アーキテクチャと私の教授です。満足のいく答えを出すことができませんでした。

32 ビット プロセッサを使用していると仮定して、2 つの符号なし整数xyがあり、どちらも 2 31より大きい(2 の補数形式に適切に変換するには大きすぎる) 場合、どのように減算を実行しますか?

減数が定数である場合、コンパイラが静的解析でこれをどのように補正できるかがわかります。しかし、特に C のような静的にコンパイルされる言語では、実行時にこの可能性にどのように対処すればよいでしょうか? これはオーバーフロー エラーをスローするだけですか、それとも一部のアーキテクチャsubuは特別な操作をサポートしていますか?

MIPS について私が見つけたものはすべて、2 の補数減算を実行するだけだと言っていますが、この場合はうまくいかないはずです。

4

1 に答える 1

1

あなたが提起する状況は問題ではありません。具体例:

  0xFFFFFFFF -  0xFFFF0000
= 0xFFFFFFFF + -0xFFFF0000
= 0xFFFFFFFF +  0x00010000
= 0x0000FFFF
于 2011-04-13T05:07:19.423 に答える