1kB는 1,024Byte 로 표현하는 것은 잘못된 관습입니다. 1024로 묶으려면 kB가 아닌 kiB로 표현해야 합니다.
부가 정보를 통해 어떤 수를 음수인지 양수인지 비교하기 위해 사용됩니다.
2의 보수 표현의 한계
0이나 2^n 형태의 이진수에 2의 보수를 취하면 음수 값을 얻을 수 없습니다.
0000 -> 1111 + 1 -> 10000 -> 올림이 발생한 비트의 1을 버리게 된다.
추가적으로 16진수를 코드에 직접 넣은 사례도 있다.
offset = __mem_to_opcode_arm(*(u32 &)loc);
offset = (offset & 0x00ffffff) << 2;
if (offset & 0x02000000)
offset -= 0x04000000;
offset += sym->st_value - loc
컴퓨터가 인식하고 표현할 수 있는 문자의 모음
문자를 0과 1로 변환하여 컴퓨터가 이해할 수 있도록 한 과정
0과 1로 된 문자 코드를 사람이 이해할 수 있도록 문자로 변환하는 과정
초창기 문자 집합입니다. 영어 알파벳과 아라비아 숫자, 일부 특수 문자를 포함하는
| 문자 이름 | 아스키 코드(10진수) | 설명 |
|---|---|---|
| NUL (Null) | 0 | 문자열 끝 표시나 초기화 등 |
| SOH (Start of Heading) | 1 | 헤더 시작, 거의 안 쓰임 |
| LF (Line Feed, \n) | 10 | 줄 바꿈 (Unix, Linux, macOS) |
| CR (Carriage Return, \r) | 13 | 캐리지 리턴 (Windows 줄바꿈은 CR+LF) |
| TAB (Horizontal Tab) | 9 | 탭 문자 |
| ESC (Escape) | 27 | 이스케이프 문자 |
| DEL (Delete) | 127 | 삭제 문자 |
특히 LF(10), CR(13), TAB(9) 은 텍스트 데이터 처리할 때 많이 사용됩니다.
| 범위 | 코드 범위 (10진수) | 의미 |
|---|---|---|
| 숫자 '0'~'9' | 48 ~ 57 | 숫자 문자 |
| 대문자 'A'~'Z' | 65 ~ 90 | 영문 대문자 |
| 소문자 'a'~'z' | 97 ~ 122 | 영문 소문자 |
문자 → 숫자 변환 시 이 값으로 산술 연산 가능합니다. (예: '0' = 48 → char - 48 하면 숫자 값 나옴)
| 문자 | 아스키 코드(10진수) | 설명 |
|---|---|---|
| Space (공백) | 32 | 공백 문자 |
| ! | 33 | 느낌표 |
| " | 34 | 큰따옴표 |
| # | 35 | 샵 |
| $ | 36 | 달러 |
| % | 37 | 퍼센트 |
| & | 38 | 앰퍼샌드 |
| ' | 39 | 작은따옴표 |
| ( | 40 | 소괄호 시작 |
| ) | 41 | 소괄호 종료 |
| * | 42 | 별표 |
| + | 43 | 더하기 |
| , | 44 | 쉼표 |
| - | 45 | 빼기/하이픈 |
| . | 46 | 마침표 |
| / | 47 | 슬래시 |
| : | 58 | 콜론 |
| ; | 59 | 세미콜론 |
| < | 60 | 부등호 작음 |
| = | 61 | 등호 |
| > | 62 | 부등호 큼 |
| ? | 63 | 물음표 |
| @ | 64 | 골뱅이(@) |
EUC-KR 인코딩 덕분에 한국어를 코드로 표현할 수 있게 되었습니다.
EUC-KR이란?
KS X 1001, KS X 1003이라는 문자 집합을 기반으로 하는 대표적인 완성형 인코딩 방식
초성, 중성, 종성이 모두 결합된 한글 단어에 2바이트 크기의 코드를 부여합니다.
유니코드는 한글을 포함하며 대부분 나라의 문자, 특수문자, 화살표나 이모티콘까지도 코드로 표현할 수 있는 통일된 문자 집합입니다.
인코딩 방식 -> UTF-8, UTF-16, UTF-32 등이 있습니다.
1바이트부터 4바이트까지의 인코딩 결과를 만들어 낼 수 있습니다. -> 유니코드 문자에 부여된 값의 범위에 따라 결정됩니다.
한글 -> D55C(16진수) + AE00(16진수) -> 이진수 변환 시 1101 0101 0101 1100(2진수) + 1010 1110 0000 0000(2진수)
처럼 인코딩해줍니다.