私のリトルエンディアンのz80風のプロセッサには、32ビットlong int msk = 0xFFFFFF00(サブネットマスク)があります。今朝、この値をウォークスルーしてデータベースに保存する関数に渡し(unsigned char *)&mskて
みたときに、エンディアンについて学びまし
た。void bar(unsigned char * c);&msk
残念ながら、z80プロセッサのリトルエンディアンのため、データベースは値を「逆方向」に格納し、別の関数がバイトを読み戻すと0x00FFFFFF、正しいサブネットマスクではないを認識します。
組合でこれを回避する簡単な方法はありますか?現在のLSBではなく、char[3]のLSBにマップしたいと思います( LSBを取得します)。long int mskchar[0]
結論として、ビッグエンディアンの方が優れています。