728x90
hex = 16진수
dec = 10진수
bin = 2진수
public class MainClass {
public static void main(String[] args) {
//강사님께서 중요하다고하심
// 고급, 나중에쓰인다함
/*----------------------
* bit 연산: 0,1 - > 2진수
* ---------------------
& and
| OR
^ XOR
<< LEFT SHIFT
>> RIGHT SHIFT
~ NOT
2진수랑 16진수끼리 연산을 바꾸는걸 해야한다.
2진수
1101 -> 13
1100 1010 이값을 가지고 bit연산한다
8421 8421
12 10
16의1승 16의 0승
C A
- 계산기로 풀수있다./////////////////////////////////
12*16 + 10*1 -> 202
1110 0011
8421 8421
14 3
E 3 //16진수로 표현
0x7A //16진수로 있다 가정 이걸 2진수로 바꿔보자 7A - > 8비트
8421 8421 - > A=10
0111 1010
*16 진수: 0~ A(10) B(11) C(12) D(13) E(14) F(15)
*/
//AND
int number;
number = 0x71 & 0x85;
//0111 0001
//1000 0101
//- > 0000 0001 결과값
System.out.println("number = "+ number); // ---------------------------------------- 1
System.out.printf("0x%x \n", number); //16진수로 나오게 할 수 있다.// ---------------------- 0x1
//OR
number = 0xD2 | 0x3B;
//D =13
//1101 0010 | 0011 1011
//1101 0010
//0011 1011
//-> 1111 1011 결과값
//-> F B
System.out.println("number = "+ number);
System.out.printf("0x%x \n", number);
// XOR////////////////////////////////////////////////////////
//실무에서 활용도가 제일 높다
number = 0xAB ^ 0x74;
/*
0xAB T T False(0)
T F True(1)
1010 1011 F T True
8421 8421 F F False
0x74
0111 0100
8421 8421
->>>>연산
1010 1011
0111 0100
->>>>연산
1101 1111 - > D F
- > 0xDF 암호화 (이걸로 변하는것이 암호화)
0111 0100
1101 1111
- > 1010 1011 다시 처음을 복구
*/
System.out.println("number = "+ number);
System.out.printf("0x%x \n", number);
number = 0xDF ^ 0x74;
System.out.printf("0x%x \n", number); // 원상복귀를 해줌
// left shift == *2
/*
0001 -> 1
0010 -> 2
0100 -> 4
1000 -> 8
*/
byte by;
by = 0x1 << 3; // shift 한다고 표현 shift 값 = 3
System.out.println(by);
// right shift == /2
by = 0x8 >> 1;
System.out.println(by);
// ~ 반전
//0 - > 1
//1 - > 0
by = ~0x55;
// 0101 0101
// 위값을 반전을 시킨다.
// - > 1010 1010 // A A
System.out.printf("0x%x \n", by);
//문제를 활용해보자////////////////////////////////////////////////////////
number = 0xD4 ^ 0x25;
// 1101 0100 ^ 0010 0101
//XOR 연산을 해보자
//- > 1111 0001
//- > 15 1
//- > f 1
System.out.printf("0x%x",number);
/////////////////////////////////////////////////////////////////////
}
}
[
OUTPUT
](http://<div class=)
1 2 3 4 5 6 7 8 9 10 11 | number = 1 0x1 number = 251 0xfb number = 223 0xdf 0xab 8 4 0xaa 0xf1 | cs |
[
](http://<div class=)
728x90
'JAVA' 카테고리의 다른 글
4일차// 배열 Array (0) | 2021.01.14 |
---|---|
3일차 // 과제 10( java) 연산 left shift < < / rightshift > > , bit 연산, Random 값, 삼항연산자 (0) | 2021.01.13 |
3일차// Random 난수 뽑기 (0) | 2021.01.13 |
3일차 // 논리연산자( &&, ||, ! ) 삼항 연산자 (0) | 2021.01.13 |
2일차 // 과제 (값의 교환 swap) 두개의 변수 데이터 값 교환하기 (0) | 2021.01.12 |