chartobit转换效率问题


一般来说,char转换成bit类型 也就是1个字节转换为8个字节的过程,小型的数据量可以用循环移位实现,如果是几百兆的数据转换,如何实现效率更高??
恐怕是没有说清楚,是将字节码转为二进制序列,这个在通信行业中应用较多,比如字符为0xFE——>11111110序列

多线程 C++

红颜不似月 11 years, 11 months ago

一个简单的方法是查表。一个char数据映射到一个8字节整数上:

   
  uint64_t lookup[256] = {
  
0x0, 0x01, 0x10,0x11
...
};
uint64_t convert(char n){ return lookup[n];}

你需要根据你的实际情况,考虑字节序的问题,在lookup中填上正确的数据,或者另写一段小程序生成这个表。

如果是写入到某个内存,也是方便的:

   
  void convert_to(char n, void* dest){ *((uint64_t*)dest) = lookup[n];}
 

520025 answered 11 years, 11 months ago

Your Answer