2017-03-23 4 views
-1

私は出力を16進数で記録するLZWコンプレッサーを作っています。現在、値を格納するためにuchar(OpenCV)を使用し、ucharを16進数で出力します。ucharの配列を単一のucharとして使用できますか?

ただし、各値を格納するときに使用するバイト数を選択できるようにしています。たとえば、値ごとに2バイト(32バイトまで)です。

出力を操作するために、私はucharsの配列を使用することを考えていました(つまり、ユーザーが32バイトを要求した場合、私は32 ucharsの配列を使用します)。この配列に大きな値を書き込み、後でその値を出力することは、どのようなインデックスや他のものが何であるか心配する必要はありませんか?つまり、配列を単なるxバイトのucharとして扱うか?ベクターを使うべきですか?

何か助けていただければ幸いです。

+0

あなたが求めていることはあまり明確ではありませんが、UTF-8エンコーディングと同じようにしたいと思っています。 – flyx

+0

標準の 'uchar'型はありません。小さな符号なし整数が必要な場合は、代わりに標準の' uint8_t'を使用することをお勧めします。 –

+0

私はOpenCVを使用していますが、追加するのを忘れました –

答えて

0

あなたは、charからか(符号付きまたは符号なし)への変換のみが動作を定義されていることを以下の組合

union pun_unsigned { 
    unsigned char c[sizeof(uint64_t)]; 
    uint16_t u16; 
    uint32_t u32; 
    uint64_t u64; 
}; 

注意を使用することができます。

関連する問題