5

リトルエンディアンとビッグエンディアンの両方について?

それらが配列にある場合はどうなりますか?それも安全ですか?

4

2 に答える 2

3

これはエンディアンとは何の関係もありません。

ここでわかるように、charはほぼ確実に8ビットになるため、整数にキャストすることは、あらゆる意味で常に安全です。

ただし、intをdoubleにキャストすることはできません。たとえば、数値2 ^ 63-10は、64ビットのdoubleで正確に表すことはできません。すべてのコンピューター科学者が浮動小数点演算について知っておくべきことを読んでください。ここで、キャストすると数値が切り捨てられ、精度が低下します。

幸い、32ビットのintはすべて損失なくキャストできるため、32ビットの長さのintであれば問題ありません。

于 2012-12-16T19:07:08.007 に答える
2

はい、通常のC変数を型キャストしている限り、安全です。

これらの変数を構成する生のバイトを変更または移動する場合にのみ、エンディアンについて心配する必要があります。

于 2012-12-16T19:06:54.410 に答える