我必须从文件中读取一个位的掩码(6位),以便在c中激活程序中的某些功能。我这样读取掩码:
char *val = "100111";
unsigned int mask;
char *endp = NULL;
mask = strtoul(val, &endp, 2);在这样做之后,无论如何我必须轮换读到的位:
mask = rol(mask);
例如,如果我读到这个序列:
100111
它会导致
111001
掩码始终为6位长度。
我需要一个与msvc和gcc一起工作的rol功能的实现。
谢谢。
发布于 2013-08-20 16:11:08
这会有帮助吗?
unsigned int rol(unsigned int mask) {
unsigned int ret = 0;
unsigned int i;
for (i = 0; i != 6; ++i) {
ret |= ((mask >> i) & 0x01) << (5 - i);
}
return ret;
}https://stackoverflow.com/questions/18329783
复制相似问题