のstd :: vectorを作成する必要がある関数の中で、の値foo
が返されます。 ベクトルのサイズは必要以上に大きくならないようにしてください。つまり、foo > 255
の場合は、ベクトルのサイズは2になる可能性があります。foo > 0xFF
の場合、ベクトルのサイズは3になります。foo > 0xFFFFFF
の場合、ベクトルのサイズは4でなければなりません。 ベクトルの正しいサイズはint foo
のサイズに依存し、ベクトルのint
〜push_back
の正しいバイトにアクセスします。 ご協力いただければ幸いです!ありがとう!整数値の1バイトを符号なし文字のベクトルにコピー
これは私がこれまで持っているものです。
size_t foo2= foo;
size_t bytes = 0;
while (foo2!= 0)
{
foo2/= (1u << CHAR_BIT);
bytes++;
}
std::vector<unsigned char> myVec(bytes);
for (size_t i = 0; i < bytes; i++)
myVec[bytes-1-i]=(*((char*)&foo+ i));
時には、コード例がよりよく通信します... – WhiZTiM
特定のエンディアン要件はありますか?下位バイトから始まり、 'push_back'を使って、例えば、あなたのベクトルをリトルエンディアンにします。 – Useless