姉妹都市とかの協定を結ぶときもロザリオ使ってたらいいなあ。…ondです。
♪ビットフィールドをもつ構造体のバイトスワップ
データを格納する際のバイトオーダーには、最上位バイトから順に並べるビッグエンディアン形式と、最下位バイトから順に並べるリトルエンディアン形式があり、プラットフォームにより異なる。
例:4バイト整数0x12345678のバイト順序
ビッグエンディアン …… 0x12 0x34 0x56 0x78
リトルエンディアン …… 0x78 0x56 0x34 0x12
このため、バイト並びが異なる通信相手とのデータのやりとりにおいては、オーダー変換が必要になる。Windowsソケットのntohl、htonl関数などがよく使われる。
しかし、C言語の構造体でビットフィールドを使用している場合は、データの格納順が以下のようにさらに複雑であり、オーダー変換は一筋縄ではいかなくなる。
ビッグエンディアン:
最上位バイトの最上位ビット側から順にビット領域を割り当てる。基本型全体のバイト並びもビッグエンディアン。
リトルエンディアン:
最下位バイトの最下位ビット側から順にビット領域を割り当てる。基本型全体のバイト並びもリトルエンディアン。
例:次の構造体のデータ領域
struct bits
{
unsigned short a:1;
unsigned short b:2;
unsigned short c:8;
unsigned short d:5;
};
ビッグ …… a1b2b1c8c7c6c5c4 c3c2c1d5d4d3d2d1
リトル …… c5c4c3c2c1b2b1a1 d5d4d3d2d1c8c7c6
note
このブログを検索
ラベル
ブログ アーカイブ
-
▼
2006
(305)
-
▼
1月
(25)
- ましろの宝箱
- メリルリンチに首ったけ
- モルカペッソ
- おいしかったのなら、よかったね
- 棒鱈戦法
- それって空気を読めってこと?
- 健康優良不良少年
- ユトリックス・リローデッド
- 政敵として対立する道
- 便箋とゴッホ
- みなさんには軽くスベっていただきます
- お兄ちゃんのせいでお嫁に行けない
- 自分で自分のことをあだ名で呼ぶタイプ
- ピーナッツクリームはソントン
- まだ夏をあきらめない
- よからぬことを考えてみました
- ペパーミントはないがレモングラスはある
- in the sepiatone
- かしまし ~アントラーズガール~
- 傾いている所が気にくわないわ
- 立ち絵がないから制服で縁日
- エンジェル再生物語
- どこにでもいるのにnowhere
- 利ざれくしょん
- 山田は原稿を読んでいるだけだ
-
▼
1月
(25)
0 件のコメント: