位与运算
#include<stdio.h>
int main()
{
unsigned int x,i;
unsigned long t=1;
printf("input valid value for x,i;");
scanf("%u%u",&x,&i); //输入两个无符号的整数
while(i>0)
{
if((i & 0x1)==1) t*=x; //将i与十六进制的整数1进行位与运算
x*=x; i>>1; //移位运算,右移一次相对于除以2
}//手工执行循环体,更能清晰理解循环体的功能
printf("Result is: %u\n",t);
return 1;
}
运行结果