이 함수는 비트 연산자 만 사용하여 3 개의 정수를 어떻게 합합니까?

user3114056
int sum3(int x, int y, int z) {

  /* use XOR to combine x, y, and z, use word2 to store carry bit. */

  int word1 = 0;
  int word2 = 0;

  word1 = (x^y) ^ z;
  word2 = ( (x&y) | (x&z) | (y&z) ) << 1;

  return sum(word1,word2);
}

나는 그 뒤에 "이유"를 이해하지 못합니다. 캐리 비트와 관련이 있음을 이해합니다.

편집 : 여기에 합계가 있습니다.

static int sum(int x, int y) {
  return x+y;
}

그래서 거짓말을했고 결국 +를 사용 했어

지누 제이콥

정수를 추가해야하는 경우 쌍방향 XOR 연산을 수행하여 합계를 계산할 수 있습니다. 따라서 A = 0x10 = (0001 0000) bin 및 B = 0x11 = (0001 0001) bin이 숫자를 추가하기 위해 비트 단위 XOR 연산을 수행 할 수 있으므로 숫자가 다를 때 1을 제공하고 0을 제공합니다.

그래서 A XOR B = 0010 0001 이것은 합계를 제공합니다.

캐리가있는 경우 한 위치를 이동 한 후 추가해야하며 이것이 sum (int int)이하는 일입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 함수는 비트 연산자 만 사용하여 3 개의 정수를 어떻게 합합니까?

분류에서Dev

C의 비트 연산자 :이 함수는 어떻게 작동합니까?

분류에서Dev

비트 연산자와 비트 조작을 사용하여 C에서 2 개의 정수를 어떻게 바꿀 수 있습니까?

분류에서Dev

비트 연산자 나 산술 연산자 만 사용하여 (a <b? 0 : 1) 용어를 어떻게 표현할 수 있습니까?

분류에서Dev

R에서 내 데이터 세트의 값을 사용하여 행렬을 만드는 함수를 만들려면 어떻게해야합니까?

분류에서Dev

어떻게 코 틀린 자바의 비트 연산자를 사용합니까?

분류에서Dev

사이트 너비에 걸쳐있는 3 개의 이미지를 반응 형으로 만들려면 어떻게해야합니까?

분류에서Dev

재정의 된 함수를 사용하는 비 멤버 함수를 어떻게 만들 수 있습니까?

분류에서Dev

하나의 IP 또는 호스트 이름에서만 연결하도록 지정된 SSH 사용자를 제한하려면 어떻게합니까?

분류에서Dev

점 (.)을 포함하는 문자열 경로 매개 변수를 사용하여 클라이언트 측 Blazor에서 어떻게 라우팅합니까?

분류에서Dev

find를 사용하여 특정 3 개의 파일이있는 디렉토리 만 계산합니까?

분류에서Dev

비트 연산을 사용하여 두 숫자의 GCD를 찾는 다음 기능은 어떻게 작동합니까?

분류에서Dev

스트림 추출 연산자를 사용하여 마지막 행에만 3 개의 값이 포함되지 않은 오류가 있다고 가정하여 파일을 읽을 수 있습니다.

분류에서Dev

R의 입력으로 여러 개의 data.frame이있는 사용자 지정 함수를 어떻게 적용합니까?

분류에서Dev

왜 두 프로그램이 동일하게 작동합니까? 비트 연산자를 사용하여 홀수 또는 짝수 (C)를 찾는 것입니다.

분류에서Dev

C ++에서 특정 사용자 계정에 대한 액세스 만 허용하는 수동 재설정 이벤트를 어떻게 생성합니까?

분류에서Dev

문자열과 정수 사이의 비교는 자바 스크립트에서 어떻게 작동합니까?

분류에서Dev

어떻게 & 여기에 비트 연산자를 사용할 수 있습니까?

분류에서Dev

부트 스트랩을 사용하고있는 경우 3 개의 이미지를 연속으로 표시하려면 어떻게해야합니까?

분류에서Dev

중첩을 위해 [] 연산자를 사용하여이 명령을 어떻게 다시 수행합니까?

분류에서Dev

더 이상 사용되지 않는 사용자 지정 점수 쿼리를 함수 점수 쿼리로 업데이트하려면 어떻게합니까?

분류에서Dev

더 이상 사용되지 않는 사용자 지정 점수 쿼리를 함수 점수 쿼리로 업데이트하려면 어떻게합니까?

분류에서Dev

jquery를 사용하여 각 행에 3 개의 열이있는 x 행을 어떻게 반복합니까?

분류에서Dev

비트 시프트 연산자를 사용하여 바이트를 더 큰 정수로 결합하는 방법

분류에서Dev

컨트롤러의 사용자 정의 변수를 Laravel의 블레이드로 어떻게 전달합니까?

분류에서Dev

두 함수가 각각 bool을 반환하는 경우 비트 연산자를 사용하여 결합하는 것이 안전합니까?

분류에서Dev

Bash를 사용하여 잘못된 산술 연산자를 수정하려면 어떻게해야합니까?

분류에서Dev

스프레드 연산자를 사용하여 두 개의 트리 개체를 완전히 병합하려면 어떻게해야합니까?

분류에서Dev

이 함수는 정확한 정밀도가 3 자리 인 숫자의 자연 로그를 계산합니까?

Related 관련 기사

  1. 1

    이 함수는 비트 연산자 만 사용하여 3 개의 정수를 어떻게 합합니까?

  2. 2

    C의 비트 연산자 :이 함수는 어떻게 작동합니까?

  3. 3

    비트 연산자와 비트 조작을 사용하여 C에서 2 개의 정수를 어떻게 바꿀 수 있습니까?

  4. 4

    비트 연산자 나 산술 연산자 만 사용하여 (a <b? 0 : 1) 용어를 어떻게 표현할 수 있습니까?

  5. 5

    R에서 내 데이터 세트의 값을 사용하여 행렬을 만드는 함수를 만들려면 어떻게해야합니까?

  6. 6

    어떻게 코 틀린 자바의 비트 연산자를 사용합니까?

  7. 7

    사이트 너비에 걸쳐있는 3 개의 이미지를 반응 형으로 만들려면 어떻게해야합니까?

  8. 8

    재정의 된 함수를 사용하는 비 멤버 함수를 어떻게 만들 수 있습니까?

  9. 9

    하나의 IP 또는 호스트 이름에서만 연결하도록 지정된 SSH 사용자를 제한하려면 어떻게합니까?

  10. 10

    점 (.)을 포함하는 문자열 경로 매개 변수를 사용하여 클라이언트 측 Blazor에서 어떻게 라우팅합니까?

  11. 11

    find를 사용하여 특정 3 개의 파일이있는 디렉토리 만 계산합니까?

  12. 12

    비트 연산을 사용하여 두 숫자의 GCD를 찾는 다음 기능은 어떻게 작동합니까?

  13. 13

    스트림 추출 연산자를 사용하여 마지막 행에만 3 개의 값이 포함되지 않은 오류가 있다고 가정하여 파일을 읽을 수 있습니다.

  14. 14

    R의 입력으로 여러 개의 data.frame이있는 사용자 지정 함수를 어떻게 적용합니까?

  15. 15

    왜 두 프로그램이 동일하게 작동합니까? 비트 연산자를 사용하여 홀수 또는 짝수 (C)를 찾는 것입니다.

  16. 16

    C ++에서 특정 사용자 계정에 대한 액세스 만 허용하는 수동 재설정 이벤트를 어떻게 생성합니까?

  17. 17

    문자열과 정수 사이의 비교는 자바 스크립트에서 어떻게 작동합니까?

  18. 18

    어떻게 & 여기에 비트 연산자를 사용할 수 있습니까?

  19. 19

    부트 스트랩을 사용하고있는 경우 3 개의 이미지를 연속으로 표시하려면 어떻게해야합니까?

  20. 20

    중첩을 위해 [] 연산자를 사용하여이 명령을 어떻게 다시 수행합니까?

  21. 21

    더 이상 사용되지 않는 사용자 지정 점수 쿼리를 함수 점수 쿼리로 업데이트하려면 어떻게합니까?

  22. 22

    더 이상 사용되지 않는 사용자 지정 점수 쿼리를 함수 점수 쿼리로 업데이트하려면 어떻게합니까?

  23. 23

    jquery를 사용하여 각 행에 3 개의 열이있는 x 행을 어떻게 반복합니까?

  24. 24

    비트 시프트 연산자를 사용하여 바이트를 더 큰 정수로 결합하는 방법

  25. 25

    컨트롤러의 사용자 정의 변수를 Laravel의 블레이드로 어떻게 전달합니까?

  26. 26

    두 함수가 각각 bool을 반환하는 경우 비트 연산자를 사용하여 결합하는 것이 안전합니까?

  27. 27

    Bash를 사용하여 잘못된 산술 연산자를 수정하려면 어떻게해야합니까?

  28. 28

    스프레드 연산자를 사용하여 두 개의 트리 개체를 완전히 병합하려면 어떻게해야합니까?

  29. 29

    이 함수는 정확한 정밀도가 3 자리 인 숫자의 자연 로그를 계산합니까?

뜨겁다태그

보관