자바 비트 연산 가감 모드 구현

Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -. Example: Given a = 1 and b = 2, return 3.
+ 와 - 호 를 사용 하지 않 습 니 다. 사실은 다른 연산 자로 이 실현 과정 을 모 의 하 는 것 입 니 다.자바 에서 가장 중요 한 도 구 는 바로 비트 연산 & | ^ ~ 과 비트 연산 자 이다.
  • 덧셈: 두 수 를 이 진수 로 보고 이용 합 니 다.
  • 상이 (^) 시 본 위 는 1 이 고 진 위 는 0 이다.
  • 같은 1 시 본 위 는 0 이 고 진 위 는 1 이다.같은 0 시 에 본위 진 위 는 모두 0 이다.

  • 따라서 진 위 를 따 지지 않 는 합 은 sum = a ^ b 이 고 진 위 는 ans = a & b 입 니 다.
    예: a = 2 - > 10 b = 2 – > 10
     - a+b :  ans=a&b=10      sum=a^b=0;
     - ans    +sum=100-->4
    
  • 감법: a + (- b) 를 이용 하여 실현 하 는데 그 중에서 - b 는 보충 코드 이 고 반 추가
  • 곱셈: 순환 이용 덧셈, b 개 a 더하기
  • 실현
  • 정수 나 누 기: 순환 이 서로 줄 어 들 고 비정 수 로 줄어든다.
  • 모 연산: 동상
  •     public int getSum(int a, int b) {
            if(b==0) return a;
            int ans=0;
            while(b!=0){
                ans=a^b;
                b=(a&b)<<1;
                a=ans;
            }
            return ans;
        }

    좋은 웹페이지 즐겨찾기