비트 연산자에 대한 자세한 설명(C 언어)

머리말
C 언어의 비트 연산자는 데이터의 이진 표현에 대해 비트 수준 연산을 수행하는 데 사용되는 연산자입니다. 이러한 연산자에는 비트 AND(&), 비트 OR(|), 비트 XOR(^) 및 비트 부정(~)이 포함됩니다. 이러한 비트 연산자는 이진 표현 획득과 같은 다양한 비트 수준 연산을 수행하는 데 사용할 수 있습니다. , 특정 비트를 0 또는 1로 설정, 변수 값 교환 등 이는 저수준 프로그래밍, 비트 수준 코딩 및 최적화 알고리즘에 자주 사용됩니다. 오늘은 비트 연산자의 사용법을 알려드리겠습니다.
여기에 이미지 설명을 삽입하세요.

기사 디렉토리

1,&

&는 두 피연산자의 이진 표현에 대해 비트 AND 연산을 수행할 수 있는 비트 AND 연산자입니다. 우선, 이진수에는 숫자 0과 1만 있다는 것을 모두 알고 있는데, &는 어떻게 작동할까요?
예를 들어 보겠습니다. 아래는 8과 11의 이진 표현입니다.
8:1000
11:1011

&는 비트 AND라고 하기 때문에 두 이진수의 해당 위치에 따라 AND 연산을 해야 합니다.예를 들어 8의 1은 11의 11, 0은 0, 0은 0에 해당합니다. 1에 해당하고, 0은 1에 해당합니다. (나는 출신이다. 순서는 앞에서 뒤로 이해하기 쉽다.)
특정 비트가 둘 다 1이면 AND 연산 후의 결과는 1입니다. 한쪽이 1이고 다른 쪽이 0이면 결과는 0입니다. 양쪽이 모두 0이면 결과는 여전히 0입니다. 상상해 볼 수 있습니다. 직렬회로로 스위치는 0과 1이 되고, 1이 되면 스위치는 닫혀서 전류가 흐를 수 있게 된다.
여기에 이미지 설명을 삽입하세요.

따라서 8&11의 결과는 1000, 즉 8입니다.

2,|

|는 &와 유사한 비트 OR 연산자입니다. 8과 11을 예로 들어보겠습니다:
8: 1000
11:1011

특정 비트의 양쪽이 1이면 결과는 1입니다. 가 0이면 결과는 1이고 양쪽이 0이면 결과는 0이다. 이것을 병렬회로로 상상하면 스위치가 켜져 있는 동안에는 전류가 흐를 수 있다.
여기에 이미지 설명을 삽입하세요.

따라서 8|11의 결과는 1011, 즉 11입니다.

3,^

^는 비트 XOR 연산자입니다. 우리는 여전히 8과 11을 예로 사용합니다.
8: 1000
11:1011

특정 비트의 양쪽이 1 또는 0이면 결과는 0입니다. 양쪽이 다른 경우(즉, 한쪽은 1이고 다른 쪽은 0) 결과는 1입니다. 즉, 특정 비트가 동일하면 결과는 0이고, 다르면 결과는 1입니다.
따라서 8&11의 결과는 0011, 즉 결과가 3이 됩니다.

4,~

~는 비트 부정 연산자입니다. 예를 들어 1과 -1을 사용합니다.
1: 00000000 00000000 00000000 00000001
-1:111111111 11111111 11111111 11111111

반전은 0이 1이 되고 1이 0이 된다는 의미이므로 1과 -1의 비트 반전은 각각 1: 11111111이 됩니다.
1111111 1 11111111 11111110
-1: 00000000 00000000 00000000 00000000 그러면 1 =
(-1) + 1, -1 =
(1) + 1 임을 알 수 있으므로 양수와 음수를 쉽게 변환할 수 있습니다.

이상으로 비트 운영자에 대한 공유입니다~ 블로거의 토크가 좋다고 생각하시면 블로거 팔로우와 좋아요, 즐겨찾기도 잊지 마세요~친구 여러분, 다음 호에서 만나요!

추천

출처blog.csdn.net/Tokai___Teio/article/details/135113625