1. 비트연산자
비트는 0과 1, 즉 이진수입니다. 이에 대한 연산을 수행합니다.
1학년 2학기 논리회로와 이산수학에서 본격적으로 배웁니다.
- & (앰퍼센트)
- 비트 AND
- 두 값 모두 1이어야 1이 나옵니다.
- 5 & 3 = (101) & (011) = (001) = 1
- | (파이프 라인)
- 비트 OR
- 두 값 중 하나라도 1이면 1. 모두 0이면 0.
- 5 | 3 = (101) | (011) = (111) = 7
- ^
- 비트 XOR (배타적 OR, Exclusive OR)
- 두 값이 달라야 1. 같으면 0.
- 5 ^ 3 = (101) ^ (011) = (110) = 6
- ~
- 비트 NOT
- 단항 연산자. 모든 비트를 반전.
- ~5 = ~(101) = (010) = 2
- <<, >>
- left shift, right shift
- 비트를 왼쪽으로/오른쪽으로 우항만큼 시프트
- 5 << 3 = (101) << 3 = (101000) = 40
- 5 >> 3 = (101) >> 3 = (000) = 0 // 비트를 벗어나면 삭제됨
- 40 >> 2 = (101000) >> 2 = (1010) = 10
산술 연산자와 마찬가지로 뒤에 등호(=)를 붙여서 복합대입연산자가 될 수 있습니다.
2. 실수의 저장, 부동소수점
부동소수점, 한자로는 浮動小數點로 표기합니다. 보시다시피 움직이지 않다의 부동(不動)이 아니고, 떠돌아 다니다의 부(浮)입니다.
‘지수 표기법’이나 ‘과학적 표기법’이라고도 불립니다. 여기서는 좀 쉽게 풀어써봅니다.
부동소수점은 다음 2개의 형태로 이루어집니다.
$x=\pm (.b_1b_2\cdots b_k)\times \beta ^e$
- 가수부
- $(b_1b_2\cdots b_k)$
- 소수의 자세한 숫자를 담당합니다. 여기서 알 수 있듯이 최대 $k$자리까지 정확하게 표현할 수 있습니다.
- 지수부
- $e$
- $\beta$를 얼마나 제곱할 지 정합니다. 정확한 예시는 아래에서 10진수로 들어보겠습니다.
2-1. 예시 : 10진수
123.4567을 부동소수점으로 표현하면 다음과 같습니다.
$0.1234567\times10^3$