0
私はバイナリプロトコルで動作するので、それは使用することが通常です:ホストint8番号にどのようにスワップするのですか?
int32_t number = SOME_NUMBER;
CFSwapInt32BigToHost(number);
しかしint8_tについて何ですか?
私はバイナリプロトコルで動作するので、それは使用することが通常です:ホストint8番号にどのようにスワップするのですか?
int32_t number = SOME_NUMBER;
CFSwapInt32BigToHost(number);
しかしint8_tについて何ですか?
通常、エンディアンはバイトのオーダーを参照します。すべてのバイトがそれ自体のアドレスを有するので、マルチバイトワードは、2つ(またはそれ以上、典型的にはビッグエンディアンまたはリトルエンディアン)異なる方向、より高いバイトのより高いアドレスまたはより低いバイトのより高いアドレスで順序付けすることができる。バイトスワップが必要です。
ビットはアドレス指定できません。エンディアンを扱う必要はありません。そして、たとえビットをインデックス化する操作があったとしても、ビット0を最も重要なものにすることは誰も夢中になりません。だから、少しスワップする必要はありません。
バイトはスワップする必要はありません。エンディアンが1バイトを超える量のみがエンディアンを持つ。 –
@PaulRだから私は使用する必要があります: (*(int8_t *)[dataSessionバイト]); ? – Viktorianec
キャストは通常[code smell](https://en.wikipedia.org/wiki/Code_smell)です。最初に試してみると、エラーや警告が表示されます。何も実行されない場合は、エラーまたは警告を理解し、正しく修正してください。他のすべてが失敗した場合は、最後の手段としてキャストのみを使用してください。 –