/*====================================================
■■■■ 자바 기본 프로그래밍 ■■■■■
- 실수형 데이터타입 정밀도 테스트
=====================================================*/
public class Test021
{
public static void main(String[] args)
{
//○ 주요 변수 선언
float a = 0; //4바이트
double b = 0; //8바이트
//○ 연산 및 처리
for (int i=1;i<=100000 ;i++ )
{
a += 100000;
b += 100000;
}
System.out.println(a); // -==>> 9.9996058E9
System.out.println(b); //-==>> 1.0E10
//○ 결과 출력
System.out.println("float : " + (a/100000));
System.out.println("double : " + (b/100000));
/*
float : 99996.055
double : 100000.0
계속하려면 아무 키나 누르십시오 . . .*/
}
}
/*====================================
■■■ 연산자 (Operator) ■■■
- 비트 단위 연산자
=====================================*/
public class Test022
{
public static void main(String[] args)
{
int a =10 ; int b = -10;
System.out.printf("~a : %d\n", ~a);
System.out.printf("~b : %d\n", ~b);
// a = 10 00001010 → 비트열반전 11110101(음수11)
// b = -10 11110110 → 비트열반전 00001001(양수 9)
/*
~a : -11
~b : 9
계속하려면 아무 키나 누르십시오 . . .*/
}
}
/*====================================
■■■ 연산자 ( Operator) ■■■
- 비트 단위 연산자
=====================================*/
public class Test023
{
public static void main(String[] args)
{
int a = 13, b = 7;
int c, d, e;
c = a & b;
d = a | b;
e = a ^ b;
System.out.printf("a & b = %d\n", c);
System.out.printf("a | b = %d\n", d);
System.out.printf("a ^ b = %d\n", e);
/*
a= 13 → 00001101
b= 7 → 00000111
-------------------
00000101 → 5
00001111 → 15
00001010 → 10 ( ^ : 값이 같으면 0, 다르면 1)
*/
/*
a & b = 5
a | b = 15
a ^ b = 10
계속하려면 아무 키나 누르십시오 . . .
*/
}
}
/*====================================
■■■ 연산자 ( Operator) ■■■
- 비트 단위 연산자
=====================================*/
// 비트 단위 연산자 『xor』 연산자를 활용하여
// 두 변수에 담겨있는 내용(값) 바꾸기
public class Test024
{
public static void main(String [] args)
{
//주요 변수 선언
int x = 20, y = 23;
//연산 및 처리
x=x^y; //y=y^x;
y=y^x; //x=x^y;
x=x^y; //y=y^x;
/*
x=20 y=23
x=20^23 00010100 → 20
^ 00010111 → 23
-----------------------
00000011 → 3
x=3
y=23^3 00010111 → 23
^ 00000011 → 3
------------------------
00010100 → 20
y=20 00000011 → 3
x=3^20 00010100 → 20
------------------------
00010111 → 23
*/
// 결과 출력
System.out.printf("x→%d, y→%d\n", x, y);
/*
x→23, y→20
계속하려면 아무 키나 누르십시오 . . .*/
}
}
/*====================================
■■■ 연산자 ( Operator) ■■■
- 논리 연산자
=====================================*/
public class Test025
{
public static void main(String[] args)
{
boolean a=true, b=false;
System.out.printf("a && b : %b\n", (a&&b));
System.out.printf("a || b : %b\n", (a||b));
System.out.printf("!a : %b\n", (!a));
System.out.printf("!b : %b\n", !b);
/*
a && b : false
a || b : true
!a : false
!b : true
계속하려면 아무 키나 누르십시오 . . .*/
}
}
/*====================================
■■■ 연산자 ( Operator) ■■■
- 비트 단위 연산자
=====================================*/
public class Test026
{
public static void main(String[] args)
{
int x = 128;
// 128 → 00000000 00000000 00000000 10000000
// 128<<3 → 00000000 00000000 00000100 00000000
// 128 → 00000000 00000000 00000000 10000000
//128>>3 → 00000000 00000000 00000100 00010000
System.out.printf("x << 3 = %d\n", (x<<3)); //-==>> x << 3 = 1024
System.out.printf("x * 8 = %d\n", (x*8)); //-==>> x * 8 = 1024
System.out.printf("x >> 3 = %d\n", (x>>3)); //-==>> x >> 3 = 16
System.out.printf("x / 3 = %d\n", (x/8)); //-==>> x / 3 = 16
System.out.println(); //개행
System.out.printf("x << 24 =%d\n" , (x<<24));
// 10000000 00000000 00000000 00000000 //-==>> x << 24 =-2147483648
System.out.printf("x << 25 =%d\n" , (x<<25)); //0
System.out.printf("x << 26 =%d\n" , (x<<26)); //0
System.out.printf("x << 27 =%d\n" , (x<<27)); //0
System.out.printf("x << 30 =%d\n" , (x<<30)); //0
System.out.printf("x << 32 =%d\n" , (x<<32)); //128 ★
System.out.printf("x << 32 =%d\n" , (x<<33)); //256
// 00000000 00000000 00000000 00000000
// 1이 한칸 더 움직이면서 마치 낭떠러지떨어지듯 없어져서 0이 된다
// 그런데 사라진 1이 아예 없어져버리는 것이 아니라
// ★★★반대편에서 다시 나타난다.
// ★★★자기 자신의 값을 찾기 전까지는 0인데 원래 값을 찾으면 다시 값이 증가한다.
}
}
'📚Study Note > JAVA' 카테고리의 다른 글
삼항 연산자를 활용한 윤년 / 평년 판별 (0) | 2021.03.04 |
---|---|
삼항연산자를 통한 홀수/짝수 , 정수(- + 0) 판별 (0) | 2021.03.04 |
java.util.Scanner (0) | 2021.03.02 |
printf() _ 서식출력메소드 (0) | 2021.03.02 |
BufferedReader, System.in.read() (0) | 2021.03.01 |