首页 > 其他分享 >不用加减乘除做加法

不用加减乘除做加法

时间:2023-05-19 14:44:16浏览次数:31  
标签:结果 int 不用 存放 加法 进位 加减乘除

模拟计算机的加法器实现

  • x存放不进位的加法结果,y存放进位。不进位的结果加上进位就是答案,换句话就是x+y
    • 不进位加法结果可以通过异或实现,两数相加的进位可以通过逻辑与,再左移一位实现
  • 计算x+y,又是重复上面的步骤,循环即可,直到进位为0,循环结束
class Solution {
public:
    int add(int a, int b){
        //ab存放两个加数
        while(b)//直到进位为0为止
        {
            int x=a^b;//完成不考虑进位的加法
            int y=(a&b)<<1;//计算当前进位
            a=x;
            b=y;
        }
        return a;
    }
};

标签:结果,int,不用,存放,加法,进位,加减乘除
From: https://www.cnblogs.com/tangxibomb/p/17415090.html

相关文章

  • 使用ONE.Abp快速开发微服务,再也不用加班了
    项目背景公司采用项目制工作方式,因此在不同项目上可能存在多个团队开发独立的代码库,但通用的基础设施却是相同的,这可能导致每个项目都需要编写相同的代码,并重复造轮子。更严重的是,每个项目都有自己的用户体系,导致用户在使用不同的服务时需要重新登录,这不仅会破坏用户的体验,也不利......
  • 设计并实现加法器类Adder
    定义一个整数加法器类Adder,对其重载运算符“+”、“++”,main(void)函数完成对其的测试。Adder类结构说明: Adder类的数据成员包括:①私有数据成员:数值域num(int型)。Adder类成员函数包括:①有参构造函数Adder(int)和拷贝构造函数Adder(constAdder&),其中有参构造函数参数默......
  • 苹果年度跳水王!M2版Mac mini降到3399元了:不用领券
    万万没想到,苹果阵营一款性能极强的产品竟然成了价格跳水王。根据拼多多官方万人团频道显示,M2版本苹果Macmini8+256GB只要3399元了,而且是无需任何叠加优惠券等方式,直接下单即可。这是发布将近4个月来的历史最低价,对比同价位的Windows迷你机,该机不论是性能还是设计,亦或是系统生......
  • 100以内加法
    #include<iostream>#include<cstdlib>#include<ctime>usingnamespacestd;intmain(intargc,char**argv){srand(time(0));cout<<"输入做题数量";intb,c;doublem,a,sum=0;cin>>a;for(inti=1;......
  • 随机数 加法运算题
    #include<iostream>#include<ctime>#include<cstdlib>usingnamespacestd;intmain(intargc,char**argv){ intshuliang,n1,n2,x,s,m=0; cout<<"输入你要做的题的数量\n"; cin>>shuliang; for(inti=0;i<shuliang;i++){ ......
  • 随机数——加法做题
    #include<bits/stdc++.h>usingnamespacestd;intmain(){inta,b,e;doublec,d=0;doublef;cout<<"你想做几道题?";cin>>c;for(inti=1;i<=c;i++){srand(time(0));a=rand()%90+10;......
  • [每天例题]蓝桥杯 C语言 时间加法
    时间加法题目思路分析满60进1,输出记得换行代码#include<stdio.h>intmain(){inta,b,t,m,n;scanf("%d%d%d",&a,&b,&t);b=b+t;while(b>=60){b-=60;a++;}printf("%d\n%d",a,b);retu......
  • 两个字符串做加法
    publicStringadd(Strings1,Strings2){intm=s1.length();intn=s2.length();intcarry=0;intres=0;StringBuildersb=newStringBuilder();for(inti=m-1,j=n-1;i>=0||j>=0;i--,j--){intsum=c......
  • Windows系统 命令行修改默认的TTL值 不用重启的方法
    TTL是TimeToLive的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4报头的一个8bit字段。IPv4包头中TTL是一个8bit字段,它位于IPv4包的第9个字节。如下图所示,每一行表示32bit(4字节),位从0开始编号,即0~31。TTL的作用是限制IP数据包在计算机网络中的存......
  • Ubuntu sudo不用输入密码的方法
    在启动时进入安全模式,这时是用root登录的,执行:chmod740/etc/sudoers然后打开/etc/sudoers这个文件,把最后一行:#UserprivilegespecificationrootALL=(ALL:ALL)ALL#Allowmembersofgroupsudotoexecuteanycommand%sudoALL=(ALL:ALL)ALL改为 #Use......