2013-06-22 3 views
1

int보다 작은 기본 유형에 대해 비트 단위 연산을 수행하는 동안 int으로 승격되고 작동 후 기본 유형으로 다시 변환됩니다.기본 유형을 int로 변환

네이티브 형식으로 작업을 수행 할 수없는 이유는 무엇입니까?

+1

이미 사이트에서 질문 할 수 있는데, 원하는 경우 opcode (지침) 수를 제한하는 것과 관련이 있습니다. – SJuan76

+3

응답 여기 주어진다 : [바이트 비트 연산이 INT를 제조] [1] [1] : http://stackoverflow.com/questions/2003003/why-does-the-xor-operator-on -two-bytes-produce-int-int – Tala

+0

먼저 검색했지만 대답을 찾을 수 없습니다. 연결을위한 Thnx. – SIGSTP

답변

1

일반적인 CPU는 그런 종류의 산술 연산에 32 비트 숫자 표현을 사용합니다. 즉, CPU의 산술 논리 단위 (ALU)에있는 레지스터는 32 비트 일 가능성이 높으며 이것이 CPU가 수행하는 방식입니다. 암시 적 변환이 일어난 것은 명백합니다.

왜 Java가 "더 작은"유형으로 변환하지 않는지, 나는 단서가 없습니다. 그것은 Java 작성자에게 중요한 질문입니다.