!! 아스키 코드
미국에서 표준화가 추진된 정보교환용 7bit 부호로 정의합니다.
1962년 안시(ANSI)가 정의한 미국 표준 정보교환 코드이며 1963년 미국표준협회(ASA)에 의해 결정되어 미국의 표준부호가 되었습니다.
이 코드는 7비트의 이진수 조합으로 만들어져 총 128개의 부호를 표현합니다.
아스키코드의 처음 32개(0~31)는 프린터나 전송 제어용으로 사용되고 나머지는 숫자와 로마글자 및 도량형 기호와 문장기호를 나타냅니다.
아스키코드는 7자리의 2진코드인데 1비트의 패리티 비트를 추가하여 8비트로 많은 컴퓨터에 사용되고 있습니다.
!! 유니코드(Unicode)
유니코드라는 것은 즉 전세계의 코드표를 모두 모와 한번에 제공하자라는 개념이며, 흔히 UTF-8을 유니코드와 동일선상으로 이해하지만 UTF-8은 유니코드의 한 방법이며, 워낙 대중적이기 때문에 이렇게 이해하더라도 큰 문제는 없다.
초창기 rest의 개념을 json으로 리턴하는 것으로 이해하는 사례가 많은 것과 비슷한 맥락이라 할 수 있다.
유니코드는 기본적으로 16비트(bit) 즉, 2바이트(Byte)로 단어들을 표현하였다. 1Byte는 256bit이기에, 즉 2Byte는 256 x 256 = 65,536 글자를 표현할 수 있다.
!! UTF-8
유니코드의 대표적인 문자 인코딩으로 UTF-8(Universal Coded Character Set + Transformation Format 8-bit)이 있기 때문에 UTF-8에 대해서 설명을 하자면, 한 문자를 표현하기 위해서 1바이트에서 4바이트까지를 사용한다. 예를 들어 아스키코드에 포함된 문자들은 1바이트만으로 표시된다.
유니코드는 기본적으로 U+라는 표식을 붙이며 나머지 16진수의 숫자값을 4개 더해서 표식을 한다.
16진수를 2번 곱하면 256이 되기에 1Byte가 되며, 16진수 숫자가 4개면 2Byte가 되기에 실질적으로 U+2Byte 16진수로 인식을 하면 되나 최근 들어서 문자가 계속 증가하였기 65536 범위가 넘어셨으면 이를 위해 평면이라는 개념이 추가 생겨났다.
!! 아스키코드 숫자변환 원리
char a = 65 를 한 후에 a를 출력하면 왜 A가 출력이 될까? 궁금하였다.
단순히 대문자 A 에 대응하는 10진수는 65이기 때문에 나오는 것은 알겠다.
그럼 내부적으로 그렇게 구현이 되어있는건가?
char a = 'C' - 2 를 한 후에 a를 출력하면 왜 A가 출력이 될까?
이거는 문자 - 정수를 했는데 어떻게 알아서 출력이 되는건지? 그냥 받아들여야 하나? 그렇게 생각을 하였다.
그래서 좀 더 찾아본 것을 정리하려 한다. char타입은 문자가 저장된다 생각하지 말고 2byte 크기의 양의 정수를 저장하는 타입이라고 생각하자. 즉 0~65535 범위의 정수를 저장할 수 있다.
이 타입이 연산이 될때에도 이 정수값이 사용이 된다. char a = 'C'-2; 이문장에서 문자와 숫자의 연산이라고 생각하니까 개념이 어렵다.
'생활 꿀팁' 카테고리의 다른 글
카르다노 코인 VS 유니스왑 코인 투자 [ 4월 추천 코인 카르다노 ] (0) | 2021.03.30 |
---|---|
체이널리시스 도약 , 끝없는 성장만 있을까? ?? (0) | 2021.03.28 |
우울장애 , 우울증 초기증상 [ 우울증 극복 방법 1편 ] (0) | 2021.03.19 |
청소년 우울증 자가 진단 방법 + 우울증이란 ? (0) | 2021.03.17 |
양극성 장애 초기 증상 [ 청소년 조울증 특징 ] (0) | 2021.03.16 |
댓글