如果我想对整数 5
进行位移乘以 3,所以 int a = 5; int b = a << 3;
,结果将是 40
十进制为 5
是101
和 40
是101000
.
但是,如果我有以下 char
怎么办?大批:
00000 00101
通过向左移动三位,我希望结果为 00001 01000
.所以我想适应 0
的填充。你有什么建议?
最佳答案
如果你指的是一个实际的 char
数组,你可以使用 memmove()
和 memset()
:
char str[] = "0000000101";
int shift = 3;
int length = strlen(str);
memmove(str, str + shift,length - shift);
memset(str + length - shift,'0',shift);
// Result:
// "0000101000"
关于c - Bitshift 字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8085521/