バイト (16 の倍数) を保存できるスマート カードを持っています。もしそうなら:Save(byteArray, length)
それならできますしReceive(byteArray,length)
、保存したのと同じ順序でバイト配列を取得できると思います。今、私はそのような問題を抱えています。このカードに整数を保存し、他のマシン (エンディアンが異なる) でそれを読み取ると、間違ったデータが取得される可能性があることに気付きました。したがって、おそらく解決策は、常にこのカードにリトルエンディアンの方法でデータを保存し、常にリトルエンディアンの方法でデータを取得することだと思いました(読み書きするアプリを作成するので、数字を自由に解釈できますお気に入り。)。これは可能ですか?これが私が思いついたものです:
char 配列に整数を埋め込みます。
int x;
unsigned char buffer[250];
buffer[0] = LSB(x);
buffer[1] = LSB(x>>8);
buffer[2] = LSB(x>>16);
buffer[3] = LSB(x>>24);
重要なのは、マシンのエンディアンに関係なく、LSB 関数が最下位バイトを返す必要があることです。そのようなLSB関数はどのようになりますか?
さて、整数を再構築するには(このようなもの):
int x = buffer[0] | (buffer[1]<<8) | (buffer[2]<<16) | (buffer[3]<<24);
私が言ったように、それを読み書きするマシンのエンディアンに関係なく、これを機能させたいと思っています。これは機能しますか?