포스트

연산자 정리

출처 (https://proofroto.tistory.com/15)

연산자 정리

산술 연산자 정리.

1
2
3
4
5
A + B // A와 B를 더한 값을 반환
A - B // A와 B를 뺀 값을 반환
A * B // A와 B를 곱한 값을 반환
A / B // A와 B를 나눈 값을 반환
A % B // A와 B를 나눈 나머지의 값을 반환

비교 연산자 정리.

1
2
3
4
A = B // A에 B의 값을 할당한다. 
A == B // A와 B가 같으면 true, 다르다면 false를 반환.
A != B // A와 B가 다르면 true, 같다면 false를 반환.
A <= B // A가 B보다 작거나 같다면 ture, 다르면 false를 반환.

이하 연산자는 생략

범위 연산자 정리

1
2
3
4
5
A...B // A이상 B이하
A..<B // A이상 B 미만
A... // A이상
...A // A이하
..<A // A미만

비트연산자 정리.

1
2
3
4
5
6
~A // NOT 비트 연산자: 비트 반전
A & B // AND 비트 연산자 : AND 논리 연산
A | B // OR 비트 연산자 : OR 논리 연산
A ^ B // XOR 비트 연산자 : XOR 논리 연산
A >> B // shift 연산자 ( > 쪽으로 ) A(정수) >> B(만큼) 시프트연산
A << B // shift 연산자 ( < 쪽으로 ) A(정수) << B(만큼) 시프트연산

ex)

1
2
3
4
5
6
7
8
9
10
var A = 5 // 0 1 0 1
var B = 2 // 0 0 1 0

~A // -6
~B // -3
A|B // 7
A^B // 7

A >> B // 1
A << B // 20

참고 비트연산자 계산 방법

(출처 : https://tcpschool.com/c/c_operator_bitwise)

##비트 연산자(bitwise operator) 비트 연산자는 비트(bit) 단위로 논리 연산을 할 때 사용하는 연산자이다.

또한, 비트 단위로 전체 비트를 왼쪽이나 오른쪽으로 이동시킬 때도 사용한다.

AND

AND의 경우 두 비트가 모두 1일때만 1을 반환하며, 다른 경우에는 모두 0을 반환한다.

OR

OR의 경우 두 비트 중 하나라도 1이면 1을 반환, 두 비트가 모두 0일 때만 0을 반환한다.

XOR

XOR의 경우 대응되는 두 비트가 서로 다르면 1을 반환, 서로 같으면 0을 반환한다.

NOT

NOT의 경우 해당 비트가 1이면 0을 반환, 0이면 1을 반환한다.

비트 shift

왼쪽으로 가면 2배씩 값이 증가하고, 오른쪽으로 가면 절반씩 값이 줄어든다.

NOT 계산

5의경우 8비트로 표현하면. 0 0 0 0 0 1 0 1

제일 처음의 0은 부호를 나타냄. 0이면 양수 1이면 음수

~5 는 NOT 5이고 표현하면

1 1 1 1 1 0 1 0 이된다.

음수의 경우 0을 기준으로 한 값에 1을 더하고 부호만 -로 바꾸어 계산한다.


기타 연산자.

1
2
3
4
5
6
7
8
9
추후 옵셔널에서 사용함.
A ?? B // A가 nil이 아니면 A를 반환하고, nil이면 B를 반환한다.
A! // (옵셔널) A를 강제 추출
A? // (옵셔널) A를 안전하게 추출 하거나, A가 옵셔널임을 표시

오버플로 방지
&+ // 오버플로를 대비한 덧셈 연산
&- // 오버플로를 대비한 뺄셈 연산
&* // 오버플로를 대비한 곱셈 연산
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.