二进制运算使用
Posted dream-flying
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二进制运算使用相关的知识,希望对你有一定的参考价值。
问题:
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
分析:
(1)二进制异或将得到他们的非进位部分。
(2)二进制相与并左移一位,等效于进位。
(3)重复上述步骤:知道进位为0.
code:
public int Add(int num1,int num2) { //return Math.addExact(num1, num2); while(num2!=0) { int temp = (num1^num2); num2 = (num1&num2)<<1; num1 = temp; } return num1; }
参考:
链接:https://www.nowcoder.com/questionTerminal/59ac416b4b944300b617d4f7f111b215?f=discussion 来源:牛客网 public class Solution { public int Add(int num1,int num2) { while (num2!=0) { int temp = num1^num2; num2 = (num1&num2)<<1; num1 = temp; } return num1; } }
以上是关于二进制运算使用的主要内容,如果未能解决你的问题,请参考以下文章
获取 badarith,[erlang,'+',[error,0],[],同时使用 Erlang 片段在 TSUNG 中执行算术运算
C 代码中的一个小错误,用于在不使用 * 运算符的情况下将 2 位二进制数相乘