비트(bit)는 간단하게 2진수로 두가지 상태를 표현한다.
즉, 0과 1로 표기를 하게된다.
bit : 0, 1
Java에서 bit 연산자는 다음과 같다.
& AND 
| OR 
^ XOR 
<< left shift 
>> right shift 
~ NOT
비트연산자는 총 6개가 있으며,
다음은 코드로 작성된 연산 예제이다.
		// AND 연산 예제)
		int num;
		num = 0xD3 & 0xF0;
		System.out.println("num = " + num);
		System.out.printf("0x%x ", num);
		
		// console result // 
		/* 
		 * num = 208
		 * 0xd0
		 */ 
		
		// Commentary //
		/*	
		 * 8421 8421 // 16진법 자리수 계산법
		 * 
		 * 1101 0011 // 0xD3
		 * 1111 0000 // 0xF0
		 * 
		 * 1101 0000 = 0xd0
		 */		// OR 연산 예제)
		int num;
		num = 0xD3 | 0xF0;
		System.out.println("num = " + num);
		System.out.printf("0x%x", num);
		
		// console result // 
		/*
		 * num = 243
		 * 0xf3
		 */
		
		// Commentary //
		/*
		 * 8421 8421
		 * 
		 * 1101 0011
		 * 1111 0000
		 * 
		 * 1111 0011 =	0xf3
		 */		// XOR 연산 예제)
		int num;
		num = 0xD3 ^ 0xF0;
		System.out.println("num = " + num);
		System.out.printf("0x%x", num);
        
		// console result // 
		/*
		 * num = 35
		 * 0x23
		 */
		
		// Commentary //
		/*
		 * 8421 8421
		 * 
		 * 1101 0011
		 * 1111 0000
		 * 
		 * 0010 0011 = 0x23
		 */
         
		num = num ^ 0xF0;
		System.out.println("num = " + num);
		System.out.printf("0x%x", num);	
        
		// console result // 
		/*
		 * 0xd3
		 */
		
		// Commentary //
		/*
		 * 8421 8421
		 * 
		 * 0010 0011
		 * 1111 0000
		 * 
		 * 1101 0011 = 0xd3
		 */
        	 // XOR 연산은 같은 연산을 한번더 하게 되면 원래 숫자로 되돌아온다.		// ~ 반전 연산 예제)	0 -> 1 	1 -> 0
		byte by;
		by = ~0x55;		
		System.out.println("by = " + by);
		System.out.printf("0x%x \n", by);
        
		// console result // 
		/*
		 * by = -86
		 * 0xaa
		 */
		
		// Commentary //
		/*
		 * 8421 8421
		 * 
		 * 0101 0101
		 * 1010 1010
		 * 
		 * 1010 1010	AA
		 */
		// 모든 0과 1이 뒤집히기 때문에 부호를 나타내는 맨앞의 0과 1도 바뀌므로,
 	   	// 예상하지 못한 결과가 나올 수 있으므로 주의하자.		// left shift 연산 예제)
		int bit;
		bit = 0x1 << 2;		
		System.out.println("bit = " + bit);
        
		// console result // 
		/*
		 * bit = 4
		 */
		
		// Commentary //
		/*
		 * simple result : *2
		 * 
		 * 0001	-> 1
		 * 0010	-> 2
		 * 0100	-> 4	
		 */
		// 간단하게 <<1당 곱하기 2를 한 값이 나오게 된다.		// right shift 연산 예제)
		int bit;
		bit = 0x4;	
		bit = bit >> 1;		
		System.out.println("bit = " + bit);
        
		// console result // 
		/*
		 * bit = 2
		 */
		
		// Commentary //
		/*
		 * simple result : /2
		 * 
		 * 0100	-> 4
		 * 0010	-> 2
		 * 0001	-> 4	
		 */
		// left shift와 반대로 >>1당 나누기2 한 값 으로 나오게 되며, 0보다 작아지지 않는다.
'Language > Java' 카테고리의 다른 글
| [for] loop ([for] 반복문) (0) | 2019.12.01 | 
|---|---|
| eclipse workspace set up (자바 이클립스 설정) (0) | 2019.11.30 | 
| Logical operator (자바 논리연산자) (0) | 2019.11.30 | 
| [%] operator ([%] 연산자) 홀수 짝수 찾기 (0) | 2019.11.30 | 
| [if else] Condition sentence([if else]조건문) (0) | 2019.11.30 |