작성
·
161
·
수정됨
0
Java는 해당 강의만 구매 해서 앞의 강의 내용에 있을지 모르겠습니다만 헷갈리는 부분이 있습니다.
숫자와 문자의 2진수 표현은 같고
데이터타입이 숫자 타입인지 문자 타입인지 나타내는 byte 도 있을 것 같은데 이걸 어떻게 구분하는지 구글링에서 검색할 수 있는 키워드나 답을 알려주실 수 있으실까요
숫자 65의 2진수 표현: 1000001
문자 'A'의 2진수 표현: 1000001
강의 내용에 java의 경우 1byte의 prefix를 통해 음수를 표현할 수 있다고 하셨는데 데이터 타입은 어디에서 관리되는지 궁금하네요. 저장되는 메모리 구역이 다른지..그렇다 해도 할당된 데이터 구조 내에 있어야 할 것 같은데 진짜 궁금하네요
클로드에선 아래와 같이 답을 줬는데요
각 데이터 타입은 1바이트부터 8바이트까지 고유한 메모리 할당 방식을 가지고 있어, 메모리 내 위치와 크기로 타입을 구분할 수 있습니다.
그럼 각 데이터에 대한 메모리 위치는 stack 에서 가지고 있지 않나 싶은데 stack 에서도 해당 데이터 타입이 byte 인지 아니면 텍스트인지 어떻게 알고 있는지 다시 궁금하네요. -ㅂ-
stack을 공부하면 되겠네요...
문자인코딩 섹션이 단순한 내용 같아도 진짜 생각 많이 하게 되는 강의네요.
답변 2
0
데이터타입이 숫자 타입인지 문자 타입인지 나타내는 byte 도 있을 것 같은데
-> 이 부분은 데이터가 저장된 메모리에 함께 보관되는 것이 아니라, .java
코드 파일을 기반으로 해석하게 됩니다.
예를 들어 0100 0001
(10진수 65)가 메모리 상의 어딘가에 위치해 있다고 합시다.
만약 int value = 65; 형태로 자바 코드에 작성되어 있다면
int value 65; // 메모리 상에 0100 0001로 보관
System.out.println(value); // prints 65
만약 char = 65; 형태로 자바 코드에 작성되어 있다면
char value = 65; // 메모리 상에 0100 0001로 보관
System.out.println(value); // prints 'A'
0
안녕하세요. 아무도_모를_아이디님
자바에는 int, String, Integer 같은 고유의 타입이 있습니다.
그리고 각 타입별로 데이터를 다루는 방식이 달라집니다.
예를 들어서 int라는 4byte를 long이라면 8byte를 사용하게 됩니다.
정리하면 데이터를 저장할 때 마다 메모리에 두고 구분하는 것이 아니라, 지정된 타입의 표현에 의해서 구분하게 됩니다.
감사합니다.