2012-12-04 2 views
0

나는 현재 사용할 수없는 사람에 의해 작성된 코드를 검토하고 있는데이 건너 온 : 내가 전에 본 적이없는"x == 01"은 무엇을 의미합니까?

double x = ...; 
if(x == 01) { 
    // do something 
} 

. 특별한 의미가 있습니까?

+5

특별히'=='또는 '01'을 언급하고 있습니까? –

+1

또는 할당이 제공된 상태에서 double과 int가 같은지 확인하십시오. – femtoRgon

+0

중복되지 않는 한이 작업을 종료해서는 안됩니다. 그것은 유효한 질문입니다. – brimborium

답변

4

01 (0으로 시작되는 숫자로) 자바에서 진수 (기본 8) 수를 나타낸다.

4
  1. 01는 8 진수 1 의미한다 (또한 소수점 1, 그래서이 경우에는 차이가 없다. 더 진수 내용은 http://en.wikipedia.org/wiki/Octal를 참조하십시오.)

  2. 당신이 요청하는 경우 왜 새를 변수 x이 생성되었으므로 나중에 코드에서 사용할 수 있습니다.

  3. (나는 이것을 매우 의심합니다.) 무엇을 묻는다면 ==은 "같음"을 의미합니다. 첫 번째 줄에서 볼 수 있듯이 1 =은 과제입니다.

0

8 진수 표기법이라는 의미에서 특별한 의미가 있습니다. 그렇지 않으면 쓸모없고 혼란 스럽습니다. 01은 int 상수 1입니다.

javac에는 차이가 없습니다. 동일한 바이트 코드로 컴파일됩니다. 게다가 javac은 표현식을

if(x == 1.0D) { 
    // do something 
} 

으로 변환합니다. .class를 디 컴파일하면이를 볼 수 있습니다. 이 "적은"유형에서 "큰"유형으로의 자동 변환을 유형 승격이라고합니다.

관련 문제