
컴퓨터는 0, 1 만 알아들을 수 있다.
진짜 이게 신기하긴하다. 우리가 컴퓨터로 하는 그 모든 것들은 사실 0과 1로 이루어진 정보들, 즉 기계어로 번역이 되고, 컴퓨터는 이걸 읽어서 일을 진행시키는것이다.

켤건지(1) 끌건지(0)에 따라서 정보 한 칸이 결정이 되고, 이 한 칸을 비트(bit)라고 한다.
1bit는 정보의 최소 단위이다.
그리고, 1bit가 8개 모여서 8bit 즉, 1byte가 된다.
8bit = 1byte

1bit를 보면 0 or 1 의 2가지 정보를 표현할 수 있다.
그럼 2bit는??
0 0
0 1
1 0
1 1
첫번째 칸(2가지) x 두번째 칸(2가지) = 4가지를 표현할 수 있다.
그럼 1byte는?
2^8 = 256가지를 표현할 수 있다.
자 이제 정보 단위를 마스터했다. .

숫자라도.. 이해해보자!!!!
일단 숫자에는 정수와 실수가 있다.

일반적으로 C언어에서 정수를 표현할 때는 Int라는 자료형을 사용한다.
Int는 4byte의 정보까지 표현할 수 있다.
4byte는 32bit 이므로 2^32 = 4,294,967,296 가지의 정보를 표현할 수 있다! 무려 42억가지!!!
우리는 이 정보 가지 수 하나하나에 정수 하나하나를 표현하고 싶으니까
부호가 없는 정수(unsigned)라면 0 부터 4,294,967,295 까지
부호가 있는 정수(signed) 라면 반으로 나눠서 -2,147,438,648 부터 2,147,438,647 까지 표현할 수 있다!
예를 들어, 정수 13을 컴퓨터가 이해할 수 있도록 변형하려면,
Int 자료형을 만들고(4byte 짜리 정보 꾸러미)
그 자료형 안에서 13을 0과 1로 나타내면 된다.
13을 0과 1로 나타내는 방법은!!??
-> 아무래도 2진법을 사용하면 된다.
일단 우리는 0부터 9의 숫자를 사용하는 십진법에 가장 익숙하다.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 까지 셌으면 자리를 하나 더 만들어서 10 이라고 표현하는 것이다.
이것처럼 2진법도
1 다음 2라고 표현하지 않고 10이라고 표현한다.

이것처럼 13을 2진수로 표현하면
8의 자리 ---- 1
4의 자리 ---- 1
2의 자리 ---- 0
1의 자리 ---- 1
으로 1101이 된다.
그럼 이걸 위에 만들어둔 int 자료형에 넣으면!!
00000000 | 00000000 | 00000000 | 00001101
이렇게 된다.
이걸 컴퓨터한테 보여주면
드디어 우리가 아는 13으로 이해해준다!
| [CS기초] [C언어] 컴퓨터의 실수 표현 (2) | 2025.11.28 |
|---|---|
| [CS기초] [C언어] 컴퓨터의 음수 표현 (2의 보수법) (0) | 2025.11.27 |
| 나의 첫번째 C++ 프로그램 (2) | 2024.02.13 |
| C++ 컴파일 과정 (1) | 2024.02.13 |
| 다형성(Polymorphism), 오버라이딩(overriding), 오버로딩(overloading) 의 개념 (0) | 2021.01.12 |