컴퓨터공학/Others

아스키(ASCII) 코드 표, 문자열 대소비교 원리

jimmy_AI 2021. 12. 28. 00:40
반응형

아스키코드 표

C언어 char 문자형 등에서 사용되는 아스키코드 표의 0 ~ 127번까지 해당되는

문자는 아래 표처럼 정리할 수 있습니다.

이중 높은 빈도로 사용되는 문자들은 색깔로 표시해두었는데요.

크게 순서를 정리하면

 

제어문자 < 숫자 < 영어대문자 < 영어소문자

 

순서로 위치하고 있는 것을 확인하실 수 있습니다.

이 외에 다른 문자들은 군데군데 사이에 껴있기는 하지만,

비교에서 높은 빈도로 사용되지는 않기에 유의미하게 기억해두실 필요는 없습니다.

 

0~32번까지는 제어문자라고 특수 기능을 하는 문자들이 매칭되어 있습니다.

물론, 이 문자들에서도 특수 문자를 따로 매칭해주어 출력이 가능하게 해주는 경우도

있다는 점을 참고해주세요.

 

문자열의 끝을 의미하는 NULL문자는 0번,

공백은 32번에 위치하고 있음을 주목해주세요.

이는 문자열 대소비교에서 빈 문자가 작은쪽에 위치하게 만들어주는

중요한 기능을 수행합니다.

반응형

문자열 대소 비교

위의 표를 보시면 A ~ Z 순서로 1씩 증가하는 위치에 매핑된 것을 확인할 수 있고요.

대문자 A는 65, 소문자 a는 97에서 시작하고 있습니다. 이 둘은 정확히 32가 차이나네요.

또한, 숫자를 저장하는 문자열 '0' ~ '9'도 1씩 증가하는 위치에 매핑되어있습니다.

문자열을 비교하는 원리는 간단합니다.

첫 글자부터 비교하며 양쪽의 글자가 다른 경우 아스키 코드 값이 더 큰쪽이

큰 문자로 판명되는 원리입니다.

 

여기서 주의하실 점은 숫자의 경우 '20'이 '123' 보다 클 수 있다는 점입니다.

첫 글자부터 비교하는 원리를 생각하시면 이해가 쉬울 것입니다.

 

또한, NULL문자는 0의 값에 매칭되므로, 한 쪽의 글자가 비어있다면 무조건

해당 문자열이 작은 쪽으로 판명되는 원리를 이해하기 쉽습니다.

 

 

 

한글은 아스키 코드에 없나요?

한글이나 다른 특수 문자들을 모두 7비트의 아스키 코드에는 표현할 수 없습니다.

이를 위해 1바이트보다 훨씬 큰 공간에 문자열을 매핑하는 cp949, utf-8의 유니코드 방식이

고안되었습니다.

 

특히, utf-8 등의 유니코드 방식은 아스키 코드의 값을 그대로 보존하여 사용 가능해

인코딩 때 깨짐현상 등이 덜합니다.