2008年2月4日月曜日

エンディアン、MSB/LSBなど

データ概念の基礎中の基礎をメモしときます。

[MSB/LSB]

0x0123というデータがあった場合、2進数に直すと、0000_0001_0010_0011。

MSB(Most significant bit)は左端のビットだから0
LSB(Least significant bit)は右端のビットだから1


I2Cバスについてメモ。I2Cバス上のデバイスはスレーブアドレスで区別されます。スレーブアドレスは7bit(例えば1100101)であり、1bitのR/Wを付加して使用します(1:R 0:W)。バス(SDA)における送出順序はMSBからとなります。アドレスが1100101のアドレスのデバイスをReadするとき、アドレスとして1,1,0,0,1,0,1,1(R)の順序でアドレスを送信します。


[Endian]

書き込み用の制御信号と、アドレス線をを適切に動作させることで、メモリにデータを格納することができます。データ0x01234567をメモリの先頭アドレスから書き込むさい、

ビッグエンディアン(Big endian)方式ならメモリのアドレス0x...000にデータoxooが格納されます。
リトルエンディアン(Little endian)方式ならメモリのアドレス0x...000にデータox67が格納されます。


由来はガリバー旅行記。
卵を大きい端(ビッグエンド)から処理したい人(Big end-ian)と小さい端(リトルエンド)から処理したい人(Little end-ian)と争いからきているとのこと。

0 件のコメント: