일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 큐
- DP
- 알고리즘
- BOJ
- 너비우선탐색
- recursion
- 이진 탐색
- 에라토스테네스의 체
- deque
- 다익스트라
- 외적
- 투 포인터
- 비트마스킹
- 소수
- 비트연산
- dijkstra algorithm
- binary search
- 딕셔너리
- Two Pointers
- Python
- 재귀
- Bitmasking
- 에라토스테네스
- 위상정렬
- CCW 알고리즘
- Algorithm
- ccw
- 백준
- BFS
- CCW알고리즘
- Today
- Total
꾸꾸리
4-1. 컴퓨터가 데이터를 표현하는 방식 본문
1-0. 2진수란 무엇인가? 10진수, 16진수란 무엇인가?
컴퓨터는 2진수를 기반으로 데이터를 표현하고 연산도 진행한다. 따라서 2진수를 이해해야 C언어를 보다 정확히 이해할 수 있다.
여기서 2진수는 두 개의 기호를 이용해서 데이터를 표현하는 방식이다. 이와 유사하게 열 개의 기호를 이용해 데이터를 포현하는 방식이 10진수이고, 16개를 이용하는 것이 16진수이다.
자세한 설명은 생략하겠습니다.....!
1-1. 데이터 표현단위인 비트(Bit)와 바이트(Byte)
'비트'는 컴퓨터가 표현하는 데이터의 최소단위로서 2진수 값 하나를 저장할 수 있는 메모리의 크기를 뜻하는 단위이다.
또한 비트를 여덟 개 묶으면 '바이트'라는 단위가 구성된다.
1비트
0 | 1 |
1 |
0 |
1 |
0 |
1 |
1 | 0 |
1바이트
위의 그림은 컴퓨터의 메모리를 표현한 것인데, 여기서 0과 1을 표현하는 각각의 작은 사각형은 메모리의 최소단위인 비트를 의미한다. 그리고 8개의 비트가 모여서 1바이트가 됨을 보이고 있다.
1-2. 8진수와 16진수를 이용한 데이터 표현
C언어는 10진수 이외에 8진수와 16진수의 데이터 표현도 허용을 한다.
1 2 3 4 5 6 | int main(void) { int num1 = 10; // 특별한 선언이 없으면 10진수의 표현 int num2 = 0xA; // 0x로 시작하면 16진수로 인식 int num3 = 012; // 0으로 싲가하면 8진수로 인식 } | cs |
여기서 한가지 주의할 것은, 표현의 방식이 다르다고 해서 저장되는 값이 달라지는 것은 아니라는 점이다.
16진수 A와 8진수 12는 둘 다 10진수로 10이다. 즉, 위의 세 문장에 의해서 변수에 초기화되는 값은 모두 동일하다.
다만, 초기화의 사용된 표현의 방식에만 차이가 있을 뿐이다. 물론 컴퓨터는 내부적으로 2진수의 형태로 값을 저장한다.
'Programming Language > C' 카테고리의 다른 글
4-3. 비트 연산자 (0) | 2018.07.22 |
---|---|
4-2. 정수와 실수의 표현방식 (0) | 2018.07.18 |
3-3. scanf와 C언어의 키워드 (0) | 2018.07.18 |
3-2. 변수와 연산자 (연산자) (0) | 2018.07.13 |
3-1. 변수와 연산자 (변수) (0) | 2018.07.13 |