2017-03-23 89 views
-1

我正在製作一個LZW壓縮器,以十六進制記錄其輸出。它目前使用uchar(OpenCV)存儲值,並以十六進制輸出uchar。我可以使用一個uchars數組作爲單個uchar嗎?

但是,我被要求允許用戶選擇在存儲每個值時使用多少字節,所以他可以爲每個值(或32字節,取決於他)提供2個字節。因此,爲了操縱輸出,我想使用一個uchars數組(如果用戶請求32個字節,我使用32個urs的數組),問題是:是否有一個簡單的方法爲這個數組寫出一個很大的值並在稍後輸出這個值,而不必擔心什麼是索引和其他東西?也就是說,將數組視爲只是一個x字節的uchar?我應該使用矢量嗎?

任何幫助表示讚賞。

+0

您所要求的內容並不十分清楚,但您想要做的聽起來與UTF-8編碼類似。 – flyx

+0

沒有標準的'uchar'類型,如果你想要一個小的無符號整數,我建議你使用標準的'uint8_t'。 –

+0

我正在使用OpenCV,忘記添加 –

回答

0

您可以使用下面的聯盟,這從或向(符號或無符號)字符轉換隻定義行爲

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

注意。

相關問題