일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- C++ 언어 # 핵심 정리
- MySQL #핵심정리
- C언어 #핵심정리
- PHP #핵심정리
- C++ 언어 #핵심정리
- C언어 # 부록
- C++ 언어 # 핵심정리
- shell_script
- C언어 #부록
- C언어 # 핵심 정리
- Bandit
- HTML #핵심정리
- Hacking #Baic
- Today
- Total
cCcode
C Language [핵심정리] - 8 본문
1. Boolean 자료형 사용하기
Boolean 자료형은 논리 자료형이라고 불리며 참과 거짓을 나타냅니다. 다만, C언어에선 Boolean 자료형이 없어 거짓을 0으로 참을 0이 아닌 정수로 표현합니다. 그래서 우리는 <stdbool.h>파일을 이용해 true를 참으로, false를 거짓으로 나타낼 수 있습니다.
결과를 통해 Boolean 자료형은 1byte로 그전까지 참, 거짓을 구분할 때 사용했던 int 자료형과는 크기가 다름을 알 수 있습니다. 그리고 printf 함수로 결과를 출력할 때는 %d 서식지정자를 사용합니다.(따로 정의된 전용 서식지정자는 없습니다.)
2. 비트 연산자 사용하기
지금까지는 자료형을 구분할 때 byte 단위로 구분해 사용했습니다. 비트 연산자는 byte 단위보다 더 작은 bit 단위로 연산하는 연산자입니다. 하... bit 단위라니... 벌써 까마득하네요... 일단 bit 와 byte의 개념에 대해 먼저 설명드리겠습니다.
• 비트(bit) : 2진수를 저장하는 단위입니다. 컴퓨터에서 사용할 수 있는 최소 단위이며, 0과 1을 나타냅니다.
• 바이트(byte) : 8bit 크기의 단위입니다.
비트 연산은 두 값을 비트 단위로 나열한 뒤 각 자릿수를 비트 연산자로 연산합니다. 각 자릿수의 연산은 독립적이기에 다른 자릿수에 영향을 주지 못합니다. 그리고 비트 단위로 연산한 각 자릿수를 모두 모아 최종결과를 나타냅니다. 그리고 우측의 진리표는 내용이 많아보여도 각 연산자의 특성을 이해하면 모두 암기하지 않아도 사용할 수 있습니다.
비트 연산자는 비트로 옵션을 설정할 때 주로 사용하며 저장 공간을 아낄 수 있습니다. 이런 방식을 Flag라고 부릅니다.
시프트 연산은 [변수 << 이동 할 비트 수] 형식으로 사용합니다. 즉, 지정한 횟수대로 비트를 이동시키며 모자란 공간은 0으로 대체합니다. 연산자는 모양 그대로 << 는 왼쪽, >>이 오른 쪽입니다. 만약 이런 비트 연산자와 할당 연산자(=)를 같이 사용한다면 해당 비트 연산을 수행한 후 다시 자신에게 할당한다는 의미입니다. (그럼 기존에 저장되어 있던 값이 사라지고 새로운 값이 저장되겠죠.)
+ 비트 연산자 응용하기
시프트 연산자는 2의 거듭제곱을 구할 때 유용합니다.
사실 2의 거듭제곱을 구할 일이 있을까 싶지만.. 알아두어서 나쁠 건 없으니까요.
왼쪽으로 한번 씩 이동할 때마다 2의 거듭제곱으로 수가 늘어납니다. 즉, 비트의 각 자릿수는 2의 거듭제곱을 뜻하므로 비트의 이동횟수는 지수(exponent)에 해당한다고 볼 수 있습니다.
'C Language Basic' 카테고리의 다른 글
C Language [핵심정리] - 10 (0) | 2021.05.14 |
---|---|
C Language [핵심정리] - 9 (1) | 2021.05.14 |
C Language [핵심정리] - 7 (0) | 2021.05.11 |
C Language [핵심정리] - 6 (0) | 2021.05.10 |
C Language [핵심정리] - 5 (0) | 2021.05.09 |