【发布时间】:2015-02-07 13:30:31
【问题描述】:
我想将 8 个布尔值保存到一个字节,然后将其保存到文件中(这项工作必须针对非常大的数据完成),我使用了以下代码,但我不确定它是否是最好的(在速度和空间方面):
int bits[]={1,0,0,0,0,1,1,1};
char a='\0';
for (int i=0;i<8;i++){
a=a<<1;
a+=bits[i]
}
//and then save "a"
谁能给我一个更好的代码(更快)?
【问题讨论】:
-
无所不能。
-
你确定这有效吗?你在写第一位之前左移。
-
你没有做的一件事是在开始之前清除
a。 -
@Blob:先换班才是前进的方向。
-
@Blob 我的代码运行正常,并正确保存数据。
标签: c++ performance algorithm byte bits