我有一个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