<기본 배경>
1. ASCII
- American Standard Code for Information Interchange
- 하나의 문자를 8bit(1byte)의 이진수와 매핑
- 1byte는 2의 8제곱근 즉 256개의 문자를 나타낼 수 있다.
- 1byte는 영문자, 숫자, 특수기호에 대해 정의함. 한글을 2byte
2. base64
- 64진법
- 8bit의 이진 데이터를 화면에 표시할 수 있는 ASCII 코드로 변환
- 64진법은 2의 제곱수의 진법 중 화면에 표시할 수 있는 ASCII코드 전체를 나타낼 수 있는 가장 작은 진법
<연계 항목>
1. BCD
- binary-coded decimal
- 0~9까지의 10진수 1자리를 4bit의 2진수로 표현
(0~9까지의 10진수를 ASCII 코드로 표현했을 때는 8bit 의 공간이 필요하다. 그러나 BCD로 표현했을 때는 4bit(=8bit * 1/2) 공간만이 필요하다.
* 전문에게 특정 항목의 값이 모두 0~9까지의 값이라면, 전문 크기를 줄이기 위해 ASCII 코드값을 BCD로 변환해서 연계한 후, 다시 BCD를 ASCII 코드값으로 변환한다.
2. hexadecimal
- 16진수 (0~9 의 숫자와 A~F의 문자를 써서 '16'을 기수로 하는 수 표현)
- (간략형) hex
- 16 = 2의 4제곱근, 16진수를 표현하기 위해서는 4bit가 필요함
- 특정값을 표현하기 위한 메모리 크기가 1/2 혹은 1/4로 줄어든다.
|
0~9 |
10~15 |
ASCII |
8bit |
16bit |
HEXADECIMAL |
4bit |
4bit |
- 메모리에 hexadecimal 값을 저장하는 방식은 2가지(Big-Endian / Little-Endian)이며, 각각에 따라 ASCII <-> hexadecimal 하는 방식이 다르다.
※ 참고 : Big-Endian, Little-Endian
32bit 메모리 구조는 메모리의 한 단위가 32bit(4byte)를 말한다. 따라서 32bit의 메모리 구조에서는 총 8자리의 hexadecimal이 한 단위의 메모리에 저장된다. (한 단위의 hexadecimal 은 4bit)
예를 들어, 이때 저장되는 hexadecimal 이 90AB12CD 라고 하자. 메모리상의 address는 byte 단위로 구성된다. 따라서 주소가 할당되는 단위는 90, AB, 12, CD 이다.
|
가장 작은 메모리 주소에 할당하는 값 |
Big Endian |
90 |
Little Endian |
CD |
예를 들어 메모리 한 단위의 address 가 1000, 1001, 1002, 1003 이라고 했을 때
<Big Endian>
Address |
Value |
1000 |
90 |
1001 |
AB |
1002 |
12 |
1003 |
CD |
<Little Endian>
Address | Value |
1000 | CD |
1001 | 12 |
1002 | AB |
1003 | 90 |
'Programming Theory > Network' 카테고리의 다른 글
LAN/WAN (0) | 2015.10.29 |
---|---|
L4 스위치의 Load Balancing 정책 (0) | 2015.10.26 |
IP addressing (0) | 2014.12.28 |
network 명령 (0) | 2014.12.28 |
IP/ARP/RARP/ICMP protocol (0) | 2014.12.28 |