방명록
- 자바의 정석 25~27강 증감 부호 형변환 사칙연산자, 자동형변환, 산술변환2023년 04월 27일 21시 01분 32초에 업로드 된 글입니다.작성자: 민발자728x90
ch 3-5,6 증감 연산자, 부호 연산자
1. 증감연산자
증가 : 피연산자의 값을 1 증가
감소 : 피연산자의 값을 1 감소
전위형 참조되기 전 증가 ++i 후위형 참조된 후 증가 i++ 2. 부호 연산자
- 는 피연산자 부호 반대호 변경
+ 아무것도 안함
ch3-7,8 형변환 연산자
1. 형변환
변수 또는 상수의 타입을 다른 타입으로 변환
(타입)피연산자
변환 수식 결과 int → char (char)65 'A' char → int (int)'A' 65 float → int (int)1.6f 1 int → float (float)10 10.0f 문자는 유니코드 문자표에 의해 int로 변환 2. 자동 형변환
값을 범위가 더 큰 타입에 저장할 때, 값손실이 없을 때 컴파일러가 자동으로 형변환
float에 int를 저장하는 경우 가능
int에 float를 저장하는 경우 값손실이 일어나 자동 형변환 불가
값손실 예시 기존값을 최대한 보존할 수 있는 타입으로 자동 형변환 public static void main(String[] args) { byte b = 100; // byte b = (byte)100; // 100은 리터럴이고 byte타입의 범위(-128~127)의 값이기 떄문에 자동 형변환 int i = 100; // byte b2 = i; // i라는 변수를 넣어주면 byte 범위에 있더라도 값이 변할수있기 때문에 자동형변환 불가 byte b2 = (byte)i; }
ch 3-9,10 사칙 연산자, 산술 변환
1. 사칙 연산자
값 손실이 있으면 형변환 해주기
2. 산술 변환
연산 전에 피연산자의 타입을 일치시키는 것
1) 두 피연산자의 타입을 같에 일치(값손실을 최소화하기 위해 큰타입으로)
long + int → long + long = long
float + int → float + float = float
double + float → double + double = double
2) 피연산자의 타입이 int보다 작은 타입이면 int로 변환
byte + short → int + int = int
char + short → int + int = int
public static void main(String args[]) { char ca = '2'; char cb = '0'; System.out.println(ca-cb); // 2 = 50 0 = 48 -> 50-48 // 문자에서 숫자로 변경할 때 '2' -'0'을 빼는 이유 int a = 1_000_000; // 1,000,000 1백만 10의 6제곱 int b = 2_000_000; // 2,000,000 2백만 10의 6제곱 long c = a * b; System.out.println("현변환 전 " + c); // a * b = 2,000,000,000,000 ? 10의 12제곱 // int의 범위는 10의 9제곱 오버플로우 발생 // int * int = int long d = (long)a * (long)b; System.out.println("형변환 후 " + d); }
728x90'정리 > Java' 카테고리의 다른 글
자바의 정석 29~31강 비교 연산자, 문자열의 비교, 논리연산자, 논리 부정 연산자, 조건 연산자, 대입 연산자 (0) 2023.04.27 자바의 정석 28강 반올림 Math.round(), 나머지 연산자 (0) 2023.04.27 자바의 정석 23~24강 연산자와 피연산자 , 연산자의 우선순위와 결합 규칙 (0) 2023.04.26 자바의 정석 21~22강 정수형의 오버플로우, 타입 변환 (0) 2023.04.26 자바의 정석 19~20강 printf이용 출력, 화면으로부터 입력받기 (0) 2023.04.26 다음글이 없습니다.이전글이 없습니다.댓글