首页 > 编程知识 正文

c语言加减法编程,c加加位运算

时间:2023-05-03 14:28:30 阅读:268941 作者:1635

编写C语言程序,实现基于位运算的加减法器。要求:

(1)源操作数和目的操作数均为int类型;

(2)除循环控制变量外,加减运算过程中,不得使用C语言的“+”和“-”运算符;

(3)控制信号M=0,做加法;M=1,做减法;

(4)运算结果包括和/差、溢出判别标志V,v=1为溢出,v=0为未溢出;

题目设定即为只能使用位运算,代码具体如下:

#include<stdio.h>#include<stdlib.h>void main(){int s,d,s1,d1,m,r=0,v,i,cin,cout;printf("请输入源操作数:");scanf("%d",&s);printf("请输入目的操作数:");scanf("%d",&d);printf("请输入控制信号M:");//0为加法,1为减法scanf("%d",&m);cout=m&0x00000001; cin=cout;for(i=0;i<=31;i++){v=cout;s1=(s&(1<<i))>>i;d1=(d&(1<<i))>>i^m; //逐位提取r|=((s1^d1^cin)<<i); //按位获取结果cout=((s1&d1)|((s1^d1)&cin)); //进位信号cin=cout; //下一位cin等于上一位cout}v=(v^cout)&0x00000001; //最后一位进位信号为溢出信号printf("运算结果为%d,溢出情况为%dn",r,v);}

调试结果正确

解决了您的问题请给一个免费的赞哦~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。