Java/Script

비트연산자

CleanSense 2018. 2. 10. 14:29
728x90

코드설명 : 비트연산자


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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
int num;
 
& (And) 연산
 
->  &    |    0    |    1 |
  ----------------------------
    0    |    0    |    0 |
  ----------------------------
    1    |    0    |    1 |
 
num = 0xD3 & 0xF0// 11010011 & 11110000 => 11010000 0xD0
System.out.println("0xD3 & 0xF0 = " + num);    // 0xD3 & 0xF0 = 208
System.out.printf("0x%x \n", num);    // 0xd0
System.out.printf("%d \n", num);    // 208 
 
| (Or) 연산
 
->  |    |    0    |    1 |
  ----------------------------
    0    |    0    |    1 |
  ----------------------------
    1    |    1    |    0 |
 
num = 0xD3 | 0xF0// 11010011 | 11110000 => 11110011 0xF3
System.out.println("0xD3 | 0xF0 = " + num);    // 0xD3 | 0xF0 = 243
 
^ (Xor) 연산
 
->  ^    |    0    |    1 |
  ----------------------------
    0    |    0    |    1 |
  ----------------------------
    1    |    1    |    0 |
 
num = 0xD3 ^ 0xF0// 11010011 ^ 11110000 => 00100011 0x23
System.out.println("0xD3 & 0xF0 = " + num);    // 0xD3 & 0xF0 = 35
 
~연산 -> 0->11->0 으로 꾸는 연산
// 0x55 => 01010101 ~0x55 => 10101010 0xAA
num = ~0x55;
System.out.println("num = " + num);    // num = -86
System.out.printf("0x%x \n", num);    // 0xffffffaa
System.out.printf("%d \n", num);    // -86
 
// Left Shift 기호는 <<
 
// 0000 0001 => 1
// 0000 0010 => 2
// 0000 0100 => 4
// 0000 1000 => 8
 
byte b1;
 
b1 = 0x1 << 3// 레프트쉬프트를 3번하세요
System.out.println("b1 = " + b1);    // b1 = 8
 
// Right Shift 기호는 >>
 
b1 = 0x8 >> 2;
System.out.println("b1 = " + b1);    // b1 = 2
cs


728x90