본문 바로가기

Programming Theory/Network

전문 항목 유형

<기본 배경>

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