JAVA 이클립스에서 int char 형변환시 숫자가 48 증가하는 이유가 궁금합니다

조회수 1583회
int a=1;
char b=(char)a;
int c=(int)b;

로 디버그하니까 b가 1일때 c는 49, b가 2일떄 c는 50으로 초기화되어 있는데 왜이렇게된건지 알려주시면 정말 감사하겠습니다

1 답변

  • 좋아요

    2

    싫어요
    채택 취소하기

    b 가 1 일 때 c 가 49 인게 아니라 b 가 '1' 일 때 c 가 49가 되는 것입니다.

    문자 하나는 숫자로 저장되고 그 타입이 char 타입일 때 아스키 테이블에 있는 값으로 대체됩니다.

    이미지

    위 표를 보시면 알겠지만 문자 '1' 은 10진수로 49, 16진수로 0x31 입니다. 문자 '2' 는 10진수로 50이고요.

    문자 '1' 에 숫자 1을 더하면 문자 '2' 가 되고 문자 'A' 에 숫자 32를 더하면 문자 'a' 가 됩니다.

    • 답변 감사드립니다! 김동현 2019.10.19 05:20

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)