티스토리 뷰
컴퓨터가 받아들이는 모든 정보는 0 또는 1로 변환되어 메모리에 저장된다.
이 때, 메모리에 있는 이진수(Binary)의 한 자리를 '비트(Bit)' 라고 한다.
앞서 말했듯 컴퓨터의 정보를 비트로만 설정한다면, 0 또는 1의 정보만 구분할 수 있다.
그래서 훨씬 다양한 데이터를 표현하기 위해 여러 비트를 묶어 정보를 나타낼 수 있다.
예를 들어, 1Bit는 0과 1. 2가지를 나타내지만, 2Bit는 00,01,10,11 총 4가지(2의 2제곱)의 표현을 할 수 있으며,
이런 식으로 비트의 수에 따라 2의 n제곱의 정보를 표현할 수 있다.
데이터를 나타내는 최소의 단위를 비트라고 정의한 것처럼, 비트에 따라 정의한 단위가 있다.
'바이트(Byte)'는 8개의 비트를 나타낸 것으로, 말 그대로 1바이트에 2의 8제곱. 즉 256(0~255) 가지의 표현이 가능하다는 셈이다.
예를 들어, 178이라는 십진수는 10110010 이라는 이진수로 나타낼 수 있고, 29는 00011101로,
255는 11111111로 나타낼 수 있다.
더 나아가 2Byte 혹은 4Byte를 이용해 값을 나타낼 수 있다.
2Byte는 2의 16제곱인 65536개의 수를, 4Byte는 2의 32제곱의 수를 나타낼 수 있겠다.
그렇다면, 숫자가 아닌 문자는 어떻게 바이트 배열로 표현할 수 있을까?
예시부터 보면, 알파벳 'A'는 0100001, 'N'은 01001110 으로 표현한다.
이해가 안되는 것이 당연하다.
위의 예시는 문자를 표현하기 위해 사람들이 약속한 'ASCII (American Standard Code for Information Interchange)'
코드이다.
ASCII는 각 문자를 7비트로 표현하므로 총 128개의 문자를 표현할 수 있다.
https://terms.naver.com/entry.naver?docId=2270339&cid=51173&categoryId=51173
당연하게도 우리가 사용하는 한국어나, 지구상에 존재하는 많은 언어들을 담기에는
128개의 문자를 표현하는 ASCII 코드로는 턱도 없이 부족하다.
이렇게, 지구상에 존재하는 수많은 문자들과, 각종 특수문자 등을 표현하기 위해
2바이트, 또는 그 이상의 바이트를 이용하여 전체적인 문자열을 나타내는 것이
바로 'Unicode'이다.
https://terms.naver.com/entry.naver?docId=2270340&cid=51173&categoryId=51173
그렇다면 여기서 드는 의문이 있다.
큰 단위의 바이트를 사용하면 모든 숫자나 문자 등을 표현할 수 있는데,
왜 굳이 프로그래밍을 하면 다양한 데이터 타입을 사용하는 것일까?
정답은 간단하다.
앞서 말했듯 컴퓨터는 받아들이는 모든 정보를 메모리에 저장하게 되는데,
예를 들어 1과 같은 작은 수를 표현하는데 4Byte를 사용해서 표현하게 되면,
그만큼의 메모리가 낭비되는 것이다.
이처럼 메모리가 넉넉하지 못한 환경에서 동작하는 프로그램을 사용한다면,
효율적으로 메모리를 사용하는 것이 중요하다는 것이다.
'개발 세상 > CS' 카테고리의 다른 글
[자료구조] 스택(Stack) , 큐(Queue)에 대해 파헤쳐보자! (0) | 2022.01.21 |
---|
- Total
- Today
- Yesterday
- typeScript
- 코린이
- ReactNative
- CSS
- gradle
- rn
- React Native
- 스파르타코딩클럽
- Firebase
- Mac
- ChatGPT
- It
- useState
- Ai
- IMAGE
- app
- 앱개발
- TS
- Android
- JavaScript
- 영종도데이트
- useEffect
- REACT
- vsC
- ios
- Xcode
- FlatList
- vscode
- build
- React Hooks
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |