장래 프로그래머의 블로그

2024.09.29 본문

Today I Learned

2024.09.29

wriml92 2024. 9. 29. 23:08

인공지능을 위한 파이썬 2주차 1회독

인공지능을 위한 파이썬 3주차 1회독

방통대 클라우드 컴퓨팅 11강 [클라우드 아키텍처 2] 1회독

방통대 컴파일러구성 11강 [LALR 구문분석] 1회독

방통대 딥러닝 11강 [RNN(1)] 1회독

 

오늘 올릴 내용은 내가 좀 생소하게 느껴졌던 연산자 중 비트 연산자이다.

연산자 기능 예시 (괄호 안은 2진수) 결과 (괄호 안은 2진수)
& 비트 AND 5(101) & 3(011) 1(001)
| 비트 OR 5(101)  |  3(011) 7(111)
^ 비트 XOR 5(101) ^ 3(011) 6(110)
~ 비트 NOT (보수) ~5(0101) -6(1110)
<< 왼쪽 시프트 (Left Shift) 5(0101) << 1 10(1010)
>> 오른쪽 시프트 (Right Shift) 5(0101) >> 1 2(0010)

 

먼저 비트 AND 연산자는 두 양의 정수를 변환 2진수끼리 연산을 하는 건데

각 자리의 2진수가 모두 0이면 0이 되며 모두 1이 되면 1이 된다.

또한 0과 1이면 0이 된다.

그리고 비트 OR 연산자는 각 자리의 2진수가 모두 0일 경우만 0이 되면

모두 1이거나 각자 2진수가 달라도 1이 된다.

그리고 비트 XOR 연산자는 각 자리의 2진수가 서로 다르면 1이 되며

서로 같으면 0이 된다.

그리고 비트 NOT 연산자는 지금 설명하고 싶지만 나중에 더 알아보고 난 후에 설명하겠다.

다음 왼쪽 시프트 연산자는 왼쪽으로 시프트하라는 연산자다.

다른 말로 2진수로 변한 비트 값을 왼쪽으로 1칸씩 이동하라는 뜻이다.

즉 2진수인 0101를 1칸씩 왼쪽으로 이동하게 되면 1010(즉 10진수로는 10)이 된다.

마지막으로 오른쪽 시프트 연산자는 2진수 비트 값을 오른쪽으로 1칸씩 이동하라는 뜻이다.

0101를 1칸씩 오른쪽으로 이동하게 되면 0010(10진수로는 2)이 된다.

 

'Today I Learned' 카테고리의 다른 글

2024.10.01 TIL  (0) 2024.10.01
2024.09.30  (2) 2024.09.30
2024.09.28  (4) 2024.09.28
2024.09.27  (2) 2024.09.27
2024.09.26  (0) 2024.09.26