개요
문자열은 덧셈이 가능하다. 예를 들어,
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 |