1

これがどのように機能するのか、実際に機能するかどうかを明確にするために、私はただ疑問に思っています.

32 ビット int とサイズ 4 の 8 ビット int 配列がある場合、32 ビット int を 8 ビット int 配列の 0 番目のインデックスに割り当てて、事実上同じ値をビットごとに持つことができますか。また、変換して元に戻したい場合は、32 ビットの int を配列と適切なビット シフトで埋めることができると思います。

int32 bigVbl   = 20;
int8  smallVbl[4];

smallVbl[0] = bigVbl;

smallVbl 配列が bigVbl 全体を保持することを期待しています。

4

2 に答える 2

0

それを行うにはいくつかの方法がありますが、おそらく最も簡単なのはstd::copy_n、整数を配列にコピーするために使用することです。

std::copy_n(reinterpret_cast<int8*>(&bigVbl),           // Source to copy from
            std::min(sizeof(smallVbl), sizeof(bigVbl)), // Number of bytes to copy
            smallVbl);                                  // Destination to copy to

反対方向にコピーするには、上記の呼び出しでソースと宛先の場所を入れ替えるだけです。

于 2013-12-19T11:52:28.647 に答える