输入两个无符号整数x, y, 用位操作实现无符号整数的乘法运算。不用考虑整数的溢出。
输入:
235 657
输出:
154395
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
int i,res=0;
unsigned int x,y;
scanf("%d%d",&x,&y);
for (i=0 ; i<32 ; i++)//32位长度为满足测试数据,大小可根据实际修改
{
if ((y&1) == 1)//y的最低位是否为1
{
res += x;//计算相乘的结果
}
x <<= 1;
y >>= 1;
}
printf("%d",res);
return 0;
}