blues_log
article thumbnail
Published 2023. 5. 1. 22:18
[Note] 아스키 코드 (ASCII) Note

개요

문자열은 덧셈이 가능하다. 예를 들어,

System.out.println('3'+'3')

위의 실행 결과를 '33'으로 예상하기 쉽다. 하지만 실행 결과는 '102'가 나온다.

 

왜 이런 결과가 나오는 것일까? 그것에 대한 답은 밑에 내용에 나온다.

 

참고로 문자의 덧셈은 큰 따옴표(" ")를 사용하자 !!

 

 


아스키(ASCII) 코드란

아스키(American Standard Code for Information Interchange, 미국 정보 교환 표준 부호) 코드는 미국 ANSI에서 표준화한 정보교환용 7비트 부호체계이다. 000(0x00)부터 127(0x7F)까지 총 128개의 부호가 사용된다. 1바이트를 구성하는 8비트 중에서 7비트만 쓰도록 제정된 이유는, 나머지 1비트를 통신 에러 검출을 위한 용도로 비워두었기 때문이다. 영문 키보드로 입력할 수 있는 모든 기호들이 할당되어 있는 가장 기본적인 부호 체계이다. 매우 단순하고 간단하기 때문에 어느 시스템에서도 적용가능하다는 장점이 있다. 하지만 아스키는 2바이트 이상의 다양한 코드들을 표현할 수 없기 때문에 현대에는 유니코드(Unicode)를 더 많이 사용한다.


아스키 테이블

컴퓨터는 0과 1 숫자 밖에 모르기 때문에 문자도 숫자로 기억한다. 이때 숫자와 어떤 문자를 대응시키는가에 따라 여러 가지 인코딩 방식이 있는데 통상적으로 아스키 코드 방식을 많이 사용한다.

 

다음은 아스키 코드표이다.

온라인에서 많이 참조하는 이재욱님의 아스키 테이블

 

개요에서 '3' + '3'의 결과가 '102'가 나왔던 이유는 아스키 테이블을 참고하면

이 부분에서 Java가 '3'의 값을 51로 인식했기 때문이다. 

 

아스키 코드를 알면 C/C++이나 Java 등으로 문자열 함수를 다루거나 파일함수를 다룰 때 도움이 되므로 잘 알아두자.

 


참고

https://shaeod.tistory.com/228

https://namu.wiki/w/%EC%95%84%EC%8A%A4%ED%82%A4%20%EC%BD%94%EB%93%9C

'Note' 카테고리의 다른 글

[Note] 스택(Stack)과 큐(Queue)  (0) 2023.07.25
[Note] Status Codes (미완)  (0) 2023.06.19
[Note] IntelliJ 단축키 모음 (Window)  (0) 2023.05.25
[Note] 좋은 개발자란 ?  (0) 2023.05.22
[Note] 와일드카드 문자 (wildcard character)  (0) 2023.04.26