如何替换>>
运算符?例如,在这种情况下(位表示):
#include <stdio.h>
int main() {
unsigned int x;
char str[65];
char *res;
scanf("%i", &x);
res = str + 64;
*res = 0;
do {
res--;
if ( x & 1 )
*res = '1';
else
*res = '0';
x >>= 1;
} while(x != 0);
printf("%s\n", res);
}
答案 0 :(得分:1)
以下内容仅适用于未签名号码x
(感谢@Groo进行更正)。
x>>1
表示将二进制表示中的x
右移一位数,相当于将其除以2,只保留商,丢弃余数。
程序中的行可以替换为
x /= 2;
如果有人需要,
x <<= 1;
相当于(不考虑溢出)
x *= 2;