반응형
- 컴퓨터는 0과 1로 이루어진 기계어를 사용한다.
우리 사람은 수를 표현할 때 10진법을 사용한다
→ 10진법은 0, 1, 2, 3, 4, 5, 6, 7, 8, 9을 말함.
컴퓨터는 0과 1인 이진법으로 수를 저장하게 된다.
→ 이제 우리가 공부해야할 건 10진법으로 나타낸 수를 이진법으로 어떻게 나타내냐와 반대로 이진법을 10진법으로 나타내는 방법을 알아야한다.
방법을 알기전 비트와 바이트에 대해 알아가보자.
비트(Bit)
- 비트는 이진수 체계에서 가장 작은 단위로, 0 또는 1의 값을 나타낸다.
- 컴퓨터는 모든 데이터를 0과 1의 조합으로 표현하며, 이 때 각 0 또는 1을 하나의 비트로 간주한다.
- 정보를 표현하는 데 있어서 가장 기본적인 단위이기 때문에 컴퓨터와 디지털 통신에서 중요한 역할을 함.
바이트(byte)
- 바이트는 일반적으로 8개의 비트로 구성된 단위이다.
- 1바이트는 8비트이므로, 2^8 (256) 가지의 다양한 값(0부터 255까지)을 나타낼 수 있다.
- 컴퓨터 메모리의 주소 체계는 바이트로 이루어져 있기 때문에, 바이트 단위로 데이터를 조작하고 저장하는 것이 자주 일어난다.
비트와 바이트의 관계
- 1바이트는 8비트로 이루어져 있으므로, 1바이트는 2^8 = 256가지의 서로 다른 값 중 하나를 나타낼 수 있다.
- 바이트 단위로 데이터를 다루는 것이 효율적이고 편리하며, 대부분의 컴퓨터 시스템은 바이트 기반으로 데이터를 처리한다.
진법의 수 표현
- 2진수에서 10진수로 나타낼 때는 8개의 비트를 가지고 10진수를 나타내게 된다.
- 8비트가 모두 0이면 10진수는 0이고, 모두 켜지면 256이 된다.
10진법에서 2진법 표현하기
- 80을 2진수로 바꾸어보자
- 80을 2로 몫이 1이 나올 때까지 계속 나눈다.
- 나눈 후 제일 밑에 있는 1부터 오른쪽 위로 올라간다(위에서 부터 내려와도 괜찮음)
- 8비트 자리를 꽉 채워주는데 현재 7비트 밖에 없다 그래서 제일 왼쪽 부분은 0을 넣어준다. 다른 10진수를 막 나타내다 보면 2비트가 남거나 그러는데 그냥 0을 넣어주면 된다.
- 위 그림과 같이 나오면 80을 2진수로 나타낸 결과값이다
10진법 → 2진법 꿀팁
- 10진법으로 바꿀 때 항상 위의 방법으로 하면 힘들다 꿀팁을 한 번 알아보자
- 위에서 2의 n승(n → 0 ~ 7)까지 순서대로 나열된다고 했다. 그 값을 전부 각각 구해보면 밑 그림처럼 나온다
- 이 그림을 머리에 넣은 다음 밑에 내려가자
- 꿀팁으로 80을 나타내보자
- 2의 7승 자리는 80을 넘어가기 때문에 켜지지 못한다. 다음으로 넘어가자 → 0
- 2의 6승 자리는 80 안에 포함이 된다. 켜주자 → 1
- 2의 5승 자리는 64 + 32를 하면 80이 넘어가게 된다. 다음으로 넘어가자 → 0
- 2의 4승 자리는 64 + 16을 하면 딱 80이 된다. 켜주자 → 1 어? 여기서 80이 완성되었다 나머지는 전부 0
위의 단계로 2진법으로 쉽게 나타낼 수 있다. 쉽게 말해서 내가 구하고자 하는 10진법의 값이 도달할 때 까지 비트를 켜주면 된다.
2진법에서 10진법으로 표현하기
→ 위에서 80을 2진법으로 나타낸 결과값으로 다시 10진법으로 나타내보자
- 이진법으로 나타낸 걸 보면 8개의 자리가 있다 이 자리는 오른쪽부터 시작해서 2의0승부터 시작해 제일 왼쪽인 2의 7승까지 자리가 순서대로 나열된다.
- 여기서 2의 n승에서(n → 0~7) 1로 켜진 비트만 1을 곱해서 값 도출되며(0을 곱하면 0이니) 거기서 곱해진 친구들을 전부 더 해주면 값이 나온다.
반응형
'CS' 카테고리의 다른 글
inff, inf, nan, NAN (1) | 2024.01.26 |
---|---|
리터널, 상수 (0) | 2024.01.26 |
이진 기수법을 통한 고정 소수점과 부동 소수점 (2) | 2024.01.24 |
>>, << 쉬프트 연산 C++ (0) | 2023.12.02 |