char a= 65는 a라는 이름과 1바이트의 공간을 가진 메모리에 65라는 데이터를 집어넣는 거잖아?
근데 여기서 컴퓨터가 메모리 a에 들어갈 값이 숫자인지 문자인지 실수인지는 자체적으로 구별 못하지?
그래서 컴파일러가 int라고 있으면 0100 0001이라고 저장하고
char라고 있으면 아스키코드에 따른 이진수를 저장하는거임?
근데 여기서 컴퓨터가 메모리 a에 들어갈 값이 숫자인지 문자인지 실수인지는 자체적으로 구별 못하지?
그래서 컴파일러가 int라고 있으면 0100 0001이라고 저장하고
char라고 있으면 아스키코드에 따른 이진수를 저장하는거임?
똑같이 1000001 들어감. 그래서 (int)a 하면 65 읽는다 - dc App
1000001이 들어가면 cpu는 어떻게 이게 문자인지 숫자인지 판별하는거야? 추가적으로 뭔가 들어가?
char형으로 a를 선언했잖아. 그게 구분방법임 - dc App
해당 메모리에 a 변수를 사용해 접근하면 a가 char형이므로 문자형으로 구분하면 되는구나~ 하는거고, 다른 방법으로 해석하고 싶을때 명시적 형변환을 해주는거임 - dc App