n개의 비트를 가지고 나타낼 수 있는 데이터의 수는 2ⁿ개이다.
16진수 또는 8진수의 값을 갖는 변수를 printf 함수에서 서식문자 %d를 통해 출력한다면 10진수 형태로 출력됨.
부호비트(MSB): 정수의 가장 왼쪽에 존재하는 비트로, 양수는 0 음수는 1로 나타남
양의 정수 표현방식: 부호비트 + 양의 정수의 2진수 표현
ex) +5 → 00000101(부호비트 0, |5|의 2진수 표현 0000101)
음의 정수 표현방식: 음의 정수 절대값의 2의 보수
2의 보수법: 1의 보수를 취한 후 1을 더해 줌
ex) 10진수 +5의 2의 보수를 구하려면,
① +5를 2진수로 표현 → 00000101
② 1의 보수를 취함 → 11111010
③ 1을 더해 줌 → 11111011
∴ -5를 2진수로 표현하면 11111011
실수의 표현방식에는 오차가 존재한다. (부동 소수점 오차)
& 연산자: 비트 단위 AND. 두 개의 비트가 모두 1일 때, 1 반환
| 연산자: 비트 단위 OR. 두 개의 비트 중 하나라도 1이면, 1 반환
^ 연산자: 비트 단위 XOR. 두 개의 비트가 서로 다르면, 1 반환
~ 연산자: 비트 단위 NOT. 비트를 0에서 1로, 1에서 0으로 반전(보수 연산, MSB도 반전됨)
≪ 연산자: 비트의 왼쪽 이동(Shift)
ex) num1 << num2 → num1의 비트 열을 num2칸씩 왼쪽으로 이동시킨 결과를 반환
≫ 연산자: 비트의 오른쪽 이동(Shift)
ex) num1 >> num2 → num1의 비트 열을 num2칸씩 오른쪽으로 이동
> 만약 num1이 음수라면? → cpu에 따라 >> 연산의 결과가 달라진다. (음의 값 유지를 위해 1을 채울 수도, 상관하지 않고 0을 채울 수도)
① 비트 열을 왼쪽으로 1칸씩 이동시킬 때마다 정수값은 2배가 됨
② 비트 열을 오른쪽으로 1칸씩 이동시킬 때마다 정수값은 1/2배가 됨