我有一個char*
緩衝區,我想追加各種位大小的整數(在1
和32
之間)到。追加1到32位數字到字符緩衝區
因此,我需要一個函數:
void addBits(char *buffer, int bits_appended_so_far, int object, int object_bit_size);
可以,比方說,13
比特的對象移動到緩衝器的第470
比特位置。
我當然可以將這些位逐個移動到緩衝區中,但速度是至關重要的,因此似乎應該可以一次移動較大的塊。有沒有一個標準的方法來做到這一點?似乎應該有一個標準的方法,但一些谷歌搜索和SO搜索沒有給我我想要的。
你究竟想達到什麼目的? libgmp允許對任意大小的整數進行直接位操作,這可能是存儲大字符串的好方法,或者您可以考慮使用'std :: vector'... –
2011-06-14 16:17:39
我看不到矢量會對此有何幫助情況。我不需要動態分配或任何東西。只是一個有效的函數,用於在char數組中添加一個X位大小的對象。 X保證適合int。 –
Gurgeh
2011-06-14 16:29:51
'std :: vector'很爛。總有這種感覺,它可以像'std :: vector'一樣使用。 –
2011-06-14 16:35:46