hyeonga_code
Java_20_연산자_논리 부정 연산자 ! , 이항 연산자 본문
- Operand_피연산자
- 연산자의 작업 대상
- Operator_연산자
- 어떠한 기능을 수행하는 것
- 연산자보다 오류의 파악이 중요합니다.
- 유형
- 논리 부정 연산자_!
- true > false
- false > true
- 피연산자가 boolean 일 때에만 사용할 수 있습니다.
- 이항 연산자
- 특징
- 연산을 수행하기 전에 피연산자의 타입을 일치시킵니다.
- int 보다 크기가 작은 타입은 int로 형변환 합니다.
- byte, char, short
- 결국 연산을 기본적으로 int형으로 진행하기 때문에 처음부터 int형으로 선언하는 것이 좋습니다.
- 피연산자 중 표형 범위가 큰 타입으로 형변환 합니다.
기본 형 변환 최종
---------------------------------------------
byte + short int + int int
char + int int + int int
float + int float * float float
long + float float * float float
float + double double * double double
- char 문자형
- 문자마다 지정된 숫자 코드가 있습니다.
- UTF-8 을 주로 사용합니다.
- ASCII-code
- A(65) - Z(96)
- a(97) - z(103)
'OperatorEx.java'
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
package basic;
//모든 클래스는 패키지 안에 생성합니다.
public class OperatorEx {
// 모든 함수_메소드는 클래스 안에 작성합니다.
public static void main(String[] args) {
// Java의 모든 코드는 함수 안에 작성합니다.
// 이항 연산자
int a = 1000000;
int b = 2000000;
long c = a * b;
System.out.println("long c = a * b : " + c);
c = (long)a * b;
System.out.println("long c = (long)a * b : " + c);
/*
long c = a * b : -1454759936
- int 형으로 변환하여 연산을 진행했으므로
범위를 벗어나게 되어 overflow가 발생합니다.
long c = (long)a * b : 2000000000000
- int 형으로 변환한 연산을 진행한 후
long으로 형변환하여 정확한 값이 출력됩니다.
*/
System.out.println("----------");
long num1 = 1000000 * 1000000; // a는 -727,379,968
int num2 = 1000000 * 1000000 / 1000000; // c는 -727
long num3 = 1000000 * 1000000L; // b는 1,000,000,000,000
int num4 = 1000000 / 1000000 * 1000000; // d는 1,000,000
System.out.println("1000000 * 1000000 : " + num1);
System.out.println("1000000 * 1000000L : " + num3);
System.out.println("1000000 * 1000000 / 1000000 : " + num2);
System.out.println("1000000 / 1000000 * 1000000 : " + num4);
/*
1000000 * 1000000 : -727379968
- int*int 이므로 int 형의 범위를 벗어납니다.
1000000 * 1000000L : 1000000000000
- int*long 으로 지정했으므로 long 형의 범위를 벗어나지 않습니다.
1000000 * 1000000 / 1000000 : -727
- int*int/int 에서 곱하기가 먼저 연산되어 int 형의 범위를 벗어납니다.
1000000 / 1000000 * 1000000 : 1000000
- int/int*int 에서 나누기가 먼저 연산되어 int 형의 범위를 벗어나지 않습니다.
*/
|
cs |
'Java' 카테고리의 다른 글
Java_20_연산자_실수 연산 (0) | 2023.09.18 |
---|---|
Java_20_연산자_문자 연산 (0) | 2023.09.18 |
Java_20_연산자_부호 연산자 + - (0) | 2023.09.18 |
Java_20_연산자_단항 연산자 (0) | 2023.09.18 |
Java_19_음수가 나오는 이유, 1의 보수, 2의 보수 (0) | 2023.09.17 |