일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바클래스
- Java
- 알고리즘
- 기초프로그래밍
- 제어구조
- 수학연산
- SWEA
- 사용자입력
- C#프로그래밍
- 디자인패턴
- 자바
- Literal
- 코드업
- VARIABLE
- 자바연산자
- 변수
- 백준파이썬
- SWEA파이썬
- 코드업100제자바
- 백준
- 개발입문
- 코딩테스트
- Codeup
- 코드업자바
- c#
- 코드업100제
- 리터럴
- C#변수
- 프로그래머스파이썬
- Algorithm
- Today
- Total
제니노트
연산자 정리 [자바] 본문
1. 연산자 우선순위
증산시논비관삼대
(1+x<<33)
int타입이므로 33의 경우 32를 넘어가므로 33-32를 해준다.
long타입의 범위 일때에 넘어갔을 땐 64를 빼주면된다.
산술이 먼저이므로 + 먼저 << 그다음으로 연산해주기
<< 은 2^x 곱셈
>> 2^x 나눗셈
3<<1 이므로 6이 된다.
2. && || 의 경우
&&는 ||보다 우선순위가 높다.
3. '0' 은 ASCII로 48
'A'는 65
'a'는 97
4. 나머지가 있을 때 수를 올림하는 방법
나머지 연산자를 이용해 나눗셈연산에서 나머지가 있는지 확인후 나눈 수에 1더해주기
a/b + (a%b>0? 1:0)
5. 삼항연산자를 이용하면 2가지 경우의 수 처리가능
삼항연산자에 또 삼항연산자를 포함시키면 3가지 경우의 수 처리 가능
수에 따라 양수, 음수, 0을 출력할 때
num>0 ? "양수" : (num<0? "음수" : "0")
꼴로 표현 가능
6. 백의 자리 이하를 버리는 법
나눗셈 연산자는 반올림하지 않고 버린다
예를 들어 456을 백의 자리 이하를 버리고 싶다면
456/100*100
처럼 하면 됨
7. Math.round() 없이 화씨 -> 섭씨 온도 변환 시 셋째자리에서 반올림 하기
변환 공식 : C = 5/9 * (F-32)
5/9의 결과는 0 이므로 두 피연산자 중 어느 한쪽을 반드시 float or double로 바꿔줘야한다.
따라서 정수형 리터럴인 9대신 9f로 f를 붙여준다
그 다음 소수점 셋째자리에서 반올림 할 때는
1. float는 소수점 이하 5자리 까지 표현가능하므로
여기서 100을 곱해준다.
37.77778 * 100 = 3777.778
2. 0.5 더해주기
그럼 3778.278로 반올림이된다.
3. int로 변환시
3778 이 됨
4. 3의 결과를 100f로 나눈다. 그럼 따라서 37.78
따라서 int(5/9f*(F-32))*100+0.5) / 100f
8. 이항연산은 두연산자의 타입을 일치시킨 후 연산을 수행
그리고 int보다 작은 type은 int로 자동형변환된다.
byte a = 10;
byte b = 20;
byte c =(byte) a+b;
변수 a와 b는 모두 byte 타입으로 이항연산인 덧셈연산을 하기 전 int 타입으로 자동형변환된다.
int와 int의 덧셈이므로 연산결과는 int가 된다.
int 타입의 값 4byte를 1byte 짜리 byte type에 담아야 하므로 (byte)로 형변환 시켜주기.
ch 타입도 위와 같은 원리이다.
float f = 3/2f와 같이
연산결과를 실수로 얻고 싶다면 적어도 두 피연산자 중 하나가 float/double 중 하나의 실수 타입이어야함.
long l = 3000*3000*3000L;
만약 피연산자가 세개 다 int 일 경우 연산결과는 2*10^9 Int는 약 10의 9승으로 표현가능
but 2*10^9승이므로 표현범위를 넘는다.
따라서 피연산자 중 적어도 한개에 L을 붙힌 것
9. 영문자인지 숫자인지 확인하는 법
ch에 문자가 담겨있다.
그렇다면
('a'<=ch && ch<= 'z') || //소문자인지
('A'<=ch&&ch<='Z') || //대문자인지
('0'<=ch&&ch<='9') // 숫자인지
이렇게 판별하면 된다.
10. char형에 덧셈연산을 하면 Int형 으로 반환되므로 (char)을 붙혀 형변환을 해주어야한다.
참고 : 자바의정석 3장 연습문제
'Java > Java 입문' 카테고리의 다른 글
논리 연산자, 논리 부정 연산자 [자바] (0) | 2023.06.30 |
---|---|
비교 연산자,문자열의 비교 [자바] (0) | 2023.06.23 |
반올림 Math.round(),나머지 연산자 [자바] (0) | 2023.06.10 |
사칙 연산자, 산술 변환 [자바] (0) | 2023.06.10 |
형변환 연산자, 자동 형변환 [자바] (0) | 2023.06.09 |