C语言位运算,用位操作实现无符号整数的乘法运算
unsignedintmultiply(unsignedintx,unsignedinty){unsignedintresult=0;inti;for(i=0;i<32;...
unsigned int multiply(unsigned int x, unsigned int y){ unsigned int result =0; int i; for (i=0;i<32;i++) if (x&1<<i) result+=y<<i; return result;}main(){ int x,y,s; scanf("%d%d",&x,&y); s=multiply(x,y); printf("%d\n",s);}求注解,顺便解释下为什么i<32详细点;
展开
2个回答
展开全部
32位的系统,unsigned int 4个字节,每个字节8个机器字长!!! i<32是系统位的原因,如果是16位的系统就是<16了。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询