-3

まず、intはバイトよりもネイティブであり、バイトに対するすべての数学および論理演算は実際にはintで行われることを知っています。これはもちろん、バイトを使用する場合、拡大と縮小のコストがかかることを意味します。ただし、カウンターバランスでは、これはメモリバイトが実際にバイトを保持し、256 などのバイト値よりも大きな値を保持する可能性がないことも意味します。

どちらの場合も長所と短所があると思いますが、私は意見を求めています。

4

2 に答える 2

2

問題のハードウェアをエミュレートするのに最も簡単なタイプを使用します。

それがおそらくバイトになる8ビットのコンピューターだった場合。x86-64のようなものでは、長い(64ビット)の方が理にかなっていると思います。どちらの場合も、選択したサイズは、レジスタ操作と、CPU とメモリの間で転送されるデータ「ワード」のサイズと一致する可能性が高くなります。

すべての汎用レジスタ (GPR) が 32 ビットから 64 ビットに拡張され、すべての算術および論理演算、メモリからレジスタへ、およびレジスタからメモリへの演算などは、64 ビット整数で直接操作できるようになりました。スタックのプッシュとポップは常に 8 バイトのストライドであり、ポインターは 8 バイト幅です。

ウィキペディアから

于 2012-05-10T02:55:54.663 に答える
0

mips プロセッサを作成したとき、BitSet クラスを使用して個々のビットを保持し、サブセット メソッドでビット配列を簡単に分割できるようにしました。整数を算術演算できるように、int から bitset に変換するクラスを作成しました。

これはパフォーマンスに効果的な方法ではありませんが、この場合は重要ではありませんでした。

于 2012-05-10T03:20:39.607 に答える