메모리는 데이터를 저장하는 부품이다. 컴퓨터가 사용하는 데이터는 비트(Bit : Binary + Digit)로 저장된다.
- 1 byte = 8 bit
: 2^8 = 256개의 정보를 표현
1 byte = 8bit
1 KB = 1,000 byte
1 MB = 1,000 KB
1 GB = 1,000 MB
1 TB = 1,000 GB
엔디안(Endian)은 비트를 저장하는 방식
이진수 8 표기
1) 수학적 표기 : 1000(2)
2) 코드 상 표기 : Ob1000
우리가 사용하는 수의 체계는 십진법이다. 즉, 각 자리수를 0에서 9까지 사용하고, 자리수가 올라갈 수록 10배씩 커지게 된다.
하지만 비트는 2가지의 의미만 담을 수 있기에 이진법을 사용한다.
따라서 십진수 > 이진수, 이진수 > 십진수로 바꿀 수 있어야 한다.
이진수의 음수는 2의 보수법을 사용한다.
MSB(Most Significant Bit)를 부호 비트로 사용하여 0 이면 양수, 1이면 음수로 취급한다.
- sbyte는 MSB를 가지며, 정수와 음수를 가진다.
- byte는 부호를 가지지 않는다.
- 음수 : 절댓값 > 2진법 > 보수법 > +1
- 반대(음수>정수) : -1 > 보수**
MSB 란?
최상위 비트를 말한다. 반대는 LSB(Least Sigificant Bit)다.
십육진수 15 표기
1) 수학적 표기 : 15(16)
2) 코드 상 표기 : Ox15
2진법을 이용하면 숫자의 길이가 너무 길어진다는 단점이 있기에 십육진법을 이용하여 표현해줍니다. 십육진법은 자리수가 15를 넘어가는 시점에서 자리 올림을 하는 숫자 표현 방식입니다.
십진수 : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...
십육진수 : 0 1 2 3 4 5 6 7 8 9 A B C D E F 10...
- 십육진수는 열여섯 종류로 표현 : 0~9, A~F
문자 집합(Character Set)은 컴퓨터가 인식하고 표현할 수 있는 문자의 모음으로 각 문자에는 이진수가 할당되어 있다.
- 문자 인코딩(Character Encoding) : 문자를 이진수(0, 1)로 변환하는 과정
- 문자 디코딩(Character Decoding) : 이진수를 사람이 이해할 수 있는 문자로 변환하는 과정
- 문자의 모양을 폰트(Font)라고 한다.
코드 페이지(Code Page) : 컴퓨터가 인식하고 표현할 수 있는 문자의 모음
코드 포인트(Code Point) : 글자에 부여된 고유한 값
알파벳 + 아라비아 숫자 + 일부 특수 문자를 포함하는 문자 집합이다. 7비트를 사용해서 총 128개의 문자를 표현한다. 아스키 코드는 인코딩이 매우 간단하지만, 영어밖에 표현할 수 없다.
추후 8비트의 확장 아스키가 등장했지만, 이 또한 256개밖에 표현할 수 없어 수 많은 문자를 표현하기에는 부족했다.
아스키 코드는 영어밖에 표현할 수 없어 각 나라마다 그들의 언어를 표현하기 위한 인코딩이 필요했다. 한글은 각 음절이 초성, 중성, 종성의 조합으로 구성되는데, 이를 표현하는 방법에는 완성된 하나의 글자에 코드 포인트를 부여하는 완성형 인코딩과 초성, 중성, 종성을 위한 각각의 비트열을 할당하여 하나의 글자를 만드는 조합형 인코딩이 있다.
EUC-KR은 KS X 1001, KS X 1003의 문자 집합을 기반으로 하는 완성형 인코딩으로, 결합된 한글 단어에 2바이트 크기의 코드를 부여한다. 이는 2,350개 정도의 한글 단어를 표현할 수 있었다. 하지만, 이 역시도 11,172자나 되는 모든 한글 조합을 표현하기엔 부족했다.
대부분의 언어를 아우르는 문자 집합과 통일된 표준 인코딩 방식이 필요했는데 이것이 유니코드(Unicode)이다. 유니코드는 각 나라의 문자 + 이모티콘 + 여러 특수 기호로 이루어져 있다. 인코딩 방법에는 UTF-8, UTF-16, UTF-32 등이 있는데, 이중 UTF-8을 가장 많이 사용하고 있다.
C#에서 문자 타입은 char(Character)이며, UTF-16을 사용하고 있다.
Char
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/char
혼자 공부하는 컴퓨터구조 + 운영체제
02. 데이터 (54p - 71p)
교안