haijie1223 发表于 2020-11-7 22:44:19

用计算机的方法计算两个数字的和

无聊吧。。。
其实,和差都是一样的。
计算机就是用这个思路实现的和的计算。
Func _Sum($a, $b)
        $Ret = BitXOR($a, $b)
        Local $at = 0, $bt = 0
        While BitAND($a, $b)
                $at = BitXOR($a, $b)
                $bt = BitShift(BitAND($a, $b), -1)
                $a = $at
                $b = $bt
                $Ret = BitXOR($a, $b)
        WEnd
        Return $Ret
EndFunc   ;==>_Sum

afan 发表于 2020-11-7 22:58:52

阿杰对位的运算烂熟于心啊 {:1_571:}

chzj589 发表于 2020-11-8 12:08:21

好棒!增加对运算的理解!学习

chzj589 发表于 2020-11-8 17:05:38

chzj589 发表于 2020-11-8 12:08
好棒!增加对运算的理解!学习

$c= 8500
$d = 99
$stra=$c&" : "&$d
MsgBox(0, $stra,"数字的和 ="&_Sum($c, $d)& @CRLF &"数字的差 ="&_Suma($c, $d))
;计算机的方法计算两个数字的和
;计算机就是用这个思路实现的和的计算。
Func _Sum($a, $b)
      $Ret = BitXOR(0, $a+$b)
      Return $Ret
EndFunc   ;==>_Sum
Func _Suma($a, $b)
      $Ret = BitXOR(0, $a-$b)
      Return $Ret
EndFunc   ;==>_Suma


页: [1]
查看完整版本: 用计算机的方法计算两个数字的和