1

私はエンディアンについて何かを読んでいましたが、それはビットではなくバイトに適用されますが、最終的にすべてがビットのグループではありませんか?

また、コンピューターはバイトアドレス指定可能で、一度に 1 バイトのデータを取得できるため、ビットではなくバイトを参照することも読みました。

しかし、これらの個々のバイトにビットがどのように格納されているのでしょうか?.つまり、最下位ビットがどこにあるかは問題ではないということです?ハードウェアレベルも?

バイト内の特定のビットにアクセスしたい場合、アドレッシングはビットでどのように機能しますか?それが私の質問です

より明確にするために、最下位のアドレスは最上位の「ビット」または最下位の「ビット」になります。

4

2 に答える 2

0

ビットへのアクセスは、通常、マスキングとシフトによって行われます。マスク自体については、最上位/最下位ビットの位置を考慮する必要はありません。ビット 1 にはマスク 1、ビット 2 にはマスク 2、ビット 3 にはマスク 4 などがあります。

n任意のハードウェアおよび任意のビット/バイト設定で最下位/最上位ビットの位置にビットが必要な場合、アルゴリズムは 1 つだけです。

/* set bit N */
extr <- 2^N
do
  extr <- rot_right(extr)
until (extr & 1)

このアルゴリズムは、最下位ビットが内部で左端に格納されている場合にも機能しますが、ビット回転操作が必要です。次に、カウンターを使用して、LSB が左端か右端かを調べることができます。

一般に (最近では)、最下位ビットがバイトの右端であると仮定しても安全です。

于 2012-05-24T08:48:18.567 に答える