산술 연산자(2)
·
자바/기본적인 개념
- 예제(1) (이 예제를 보면, 당연히 제대로 된 값이 나와야 된다.) (그러나 마이너스 값이 나오게 되었다. 그러한 이유는 int * int = int가 나오기 때문이다.) (즉, int는 2x10^9까지만 저장이 되지만, 위의 결과 값은 오버플로우가 되어버린다.) (그래서 우리는 a나 b 앞에 L이나 (long)을 명시적으로 적어줘야 한다.) - 예제(2) (이 예제는 연산 순서에 의미가 있다.) (즉, 먼저 연산하는 곱하기 또는 나누기에 따라 int 범위에 넘어가는지 안 넘어가는지 체크를 해야한다.) - 예제(3) (이 예제에서는 char도 연산을 수행할 때, 정수형 값이 나오게 된다.) (대신 b-a를 통해 char를 얻을려면 형변환을 명시적으로 해주어야 한다.) (또한 아래의 예제(4)의 변수..
산술 연산자(1)
·
자바/기본적인 개념
1. 사칙 연산자 - 예제(1) (2.5(float)에서 int 타입으로 변환할 때, 반올림하지 않는 것에 유의하자.) - 예제(2) (오류가 나는 이유는 byte + byte = int + int = int 이기 때문에, 값의 범위를 넘었기 때문이다.) (그래서 a+b를 (byte)(a+b)로 고쳐줘야 된다.) (그러면 결과는 40이 나오게 된다.) - 예제(3) (c의 값이 44가 나오는 이유는 큰 타입에서 작은 타입으로 이동하게 되면 오차가 생긴다는 것을 기억할 것이다.) (해설하자면 위의 그림처럼 int 값에서 32비트 만큼 300의 자리가 나오게 될 것인데, byte로 고치면 8비트 밖에 없기 때문에 int의 32비트에서 맨 뒤 8비트를 두고 자른다. 그러면 값은 44가 나오게 된다.) (위의 ..
연산자의 우선순위와 결합 규칙
·
자바/기본적인 개념
대부분 잘 알지만, 헷갈리는 부분을 정리해보았다. 1. AND 그리고 OR 연산 순위 - AND 즉, '&' 또는 '&&'가 '||'보다 연산 순위가 높다. 2. 시프트 연산자 - 만약 "x
자동 형변환
·
자바/기본적인 개념
자동 형변환이란, 컴파일러가 자동적으로 형변환을 해주는 것이다. - 자동 형변환 예제(1) (이 예제에서만 봐도 차이를 알 수 있다.) (f는 자동적으로 컴파일러가 (float)를 넣어주지만, f1은 리터럴 값이 기본 double로 되기 때문에 자동 형변환이 어렵다.) - 자동 형변환 예제(2) (큰 타입(int)에서 작은 타입(char)로 가면, c 변수처럼 명시적으로 프로그래머가 적어야 한다.) ※ char과 short의 경우 byte의 크기는 같지만 값의 범위가 다르므로, 반드시 형변환을 명시적으로 해주어야 한다.) - 자동 형변환 예제(3) byte + short -> int + int -> int char + short -> int + int -> int