コンパイラと負の数の表現
-
22-08-2019 - |
質問
C99標準では、コンパイラによって使用されるべき負の数の表現言っていません。私は常に負の数を格納するための唯一の正しい方法は、(ほとんどの場合)2の補数であると考えます。
だからここに私の質問です:あなたは、デフォルトの1の補数またはサインマグニチュード表現で実装するすべての現代のコンパイラを知っていますか?我々はいくつかのコンパイラフラグで、デフォルトの表現を変更することはできますか?
使用されている表現を決定する最も簡単な方法は何ですか?
そして、何C ++標準についてはどうですか?
解決
私はそれがそんなにコンパイラが使用するのではなく、根本的なマシンが使用するものを表現するものの表現の問題ではないと思います。それはノー利益のためのオーバーヘッドの負荷を導入するため、コンパイラは、ターゲットマシンでサポートされていない表現を選ぶことは非常に愚かなことでしょう。
IPプロトコルスイートの使用中のいくつかのチェックサムフィールドの1の補数、ので、おそらく専用の「ネットワークアクセラレータ」型CPU:sがそれを実装する
他のヒント
1の補数演算を実装 UNISYS 2200シリーズには、まだありますつかいます。あなたは、
以下の質問にそれについての詳細を読むことができます標準委員会がを気にエキゾチックなアーキテクチャ
所属していません StackOverflow