728x90
bitwise
* bitwise 연산자 : 비트 단위로 계산한다.(0은 거짓, 1은 참)
* ~ : NOT
* | : OR
* & : AND
* ^ : XOR(두개 값이 다를때만 참인 연산)
// 긁지않은 개발자
public class HEx {
public static void main(String[] args) {
int x = 23, y=18;
// ~는 1의 보수를 구해준다.
// 1의 보수 + 1은 2의 보수
// 뺄셈은 2의 보수를 더해주면 된다.
System.out.printf("%d - %d = %d\n", x, y, x - y);
System.out.printf("%d - %d = %d\n", x, y, x + (~y+1));
System.out.println();
int z = ~y;
// Integer.toBinaryString(정수) : 정수를 2진수 문자열로 만들어 준다.
System.out.println(Integer.toBinaryString(y));
System.out.println(Integer.toBinaryString(z));
x=3; y=5;
z = x | y;
System.out.println(x + " | " + y + " = " + z);
z = x & y;
System.out.println(x + " & " + y + " = " + z);
z = x ^ y;
System.out.println(x + " ^ " + y + " = " + z);
}
}
실행 결과
23 - 18 = 5
23 - 18 = 5
10010
11111111111111111111111111101101
3 | 5 = 7
3 & 5 = 1
3 ^ 5 = 6
// 두개의 변수값을 교환할때
// 별도의 변수를 사용하는 방법
// 긁지않은 개발자
public class OpEx09 {
public static void main(String[] args) {
int x = 10, y = 20;
System.out.println(x + ", " + y);
int z = x;
x = y;
y = z;
System.out.println(x + ", " + y);
x = x ^ y;
y = x ^ y;
x = x ^ y;
System.out.println(x + ", " + y);
}
}
실행 결과
10, 20
20, 10
10, 20
반올림 관련
// 긁지않은 개발자
public class HEx10 {
public static void main(String[] args) {
double d = 45678.5678;
System.out.println("d = " + d);
// Math.round(실수) : 반올림 함수
System.out.println(Math.round(d)); // 소수 첫째 자리에서 반올림 한다.
}
}
실행 결과
d = 45678.5678
45679
// 소수 두번째 자리에서 반올림하시오
// 긁지않은 개발자
double d = 45678.5678;
System.out.println(Math.round(d*10));
System.out.println(Math.round(d*10) / 10.0);
실행 결과
s456786
45678.6
// 소수 세번째 자리에서 반올림하시오
// 긁지않은 개발자
double d = 45678.5678;
System.out.println(Math.round(d*100) / 100.0);
실행 결과
45678.57
// 1의 자리에서 반올림하시오
// 긁지않은 개발자
double d = 45678.5678;
System.out.println(Math.round(d/10) * 10);
실행 결과
45680
// 10의 자리에서 반올림하시오
// 긁지않은 개발자
double d = 45678.5678;
System.out.println(Math.round((d-3)/10) * 10);
실행 결과
45700
// 7이하 버림 8이상 올림을 하시오
// 긁지않은 개발자
double d = 45678.5678;
d = 17;
System.out.println(Math.round((d-3)/10) * 10);
d = 18;
System.out.println(Math.round((d-3)/10) * 10);
실행 결과
10
20
// 2이하 버림 3이상 올림을 하시오
// 긁지않은 개발자
double d = 45678.5678;
d = 12;
System.out.println(Math.round((d+2)/10) * 10);
d = 13;
System.out.println(Math.round((d+2)/10) * 10);
실행 결과
10
20
728x90
'JAVA > JAVA 이용하기' 카테고리의 다른 글
[JAVA] JAVA 현재 날짜 출력하기 (0) | 2023.06.09 |
---|---|
[JAVA] JAVA print, println, printf 사용법과 실행 결과 (0) | 2023.06.09 |
[JAVA] Java Byte Overflow(오버플로우), char, 알파벳출력하기 (0) | 2023.06.09 |
[JAVA] JAVA Shift 쉬프트 연산자란? Shift연산자 사용방법 (0) | 2023.06.09 |
[JAVA] JAVA (증감연산자 설명, 사용방법) (0) | 2023.06.09 |