不使用临时变量交换两个整数变量的值;最有效率的方法计算

目录

一、不使用临时变量交换两个整数变量的值

二、用最有效率的方法计算2乘以8


一、不使用临时变量交换两个整数变量的值

        设有 int a=2 , b=3,则

        1.加减法交换
           a = a+b;
           b = a-b;
           a = a-b;

        2.乘除法交换
           a = a*b;
           b = a/b;
           a = a/b;

         3.二进制异或交换(效率最高)
           a = ab;
           b = ab;
           a = ab;

        三种交换方法里,第三种方式效率最高,因为使用了二进制计算,众所周知,计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示,因此现代计算机都采用二进制存储的方式设计计算机,而第三种方式直接使用了二进制运算,在物理计算层面实现速度几乎不需要耗费时间,因此在现阶段的二进制设备上二进制计算的效率是最高的。

第三种运算过程

 首先 a的二进制是10 , b的二进制是11。
异或:指的是二进制计算符号,将二进制数的每个相对应的位进行异或运算,若相同就得0,不同就得1,如101 和 110  异或运算得011

要计算的数a的当前值b的当前值结果
初始值1011/
a101101
b011110
a011011

变量a最终结果为11,即十进制3,b变量最终结果为10,即2,实现了交换

二、用最有效率的方法计算2乘以8

        2<<3

        同上解释,最有效率的计算使用二进制计算方式,2 << 3, 2的二进制数是10, 2左移三位,相当于乘以了2的三次方,由二进制数10,变成二进制数10000 , 即16。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值