Daily coding
Java Basic : day 2 - Example 01 : Bit Operator 비트연산자 본문
Language/Java_basic
Java Basic : day 2 - Example 01 : Bit Operator 비트연산자
sunnnkim 2019. 11. 20. 19:08package day2;
public class Ex01_BitOperation {
public static void main(String[] args) {
//191119 과제 - 1
//과제 10번 : 비트 연산자
//다음의 결과 값을 먼저 기입하고 결과를 확인하라.
System.out.println("----과제 10번----");
int number = 5;
// 2진수로 표현하면
// 8421 8421
// 0000 0101
// 0x5 (16)
number = number << 4;
// 8421 8421
// 0000 0101 <-- 왼쪽으로 4칸씩 이동 (*2^4 = * 16)
// 0101 0000
// 0x50 (16)
// 80(decimal)
System.out.println("number << 4 : " + number);
number = number >> 5;
// 8421 8421
// 0101 0000 <-- 오른쪽으로 5칸이동 ( *2^-5 = /32)
// 0000 0010
// 0x2(16)
// 2(decimal)
System.out.println("number >> 5 : " + number);
number = number >> 1;
// 8421 8421
// 0000 0010 <-- 오른쪽으로 1칸이동 ( *2^-1 = /2)
// 0000 0001
// 0x1(16)
// 1(decimal)
System.out.println("number >> 1 : " + number);
//과제 191119 - 2
//다음의 결과 값을 먼저 기입하고 결과를 확인하라.
System.out.println("----과제 11번----");
int num1, num2;
num1 = 128;
num2 = 56;
//16진수로 바꾼다
// num1 = 128
// 8421 8421
// 1000 0000
// ----------
// 0x80
// num2 = 56
// 8421 8421
// 0011 1000
// ----------
// 0x38
// & 연산
num1 = (num1 & num2) | (num1 & num2);
// (num1 & num2)
// 1000 0000
// 0011 1000
// ----------
// 0000 0000
// 0x0
// (num1 & num2) | (num1 & num2)
// 0000 0000
// 0000 0000
// ----------
// 0x0
System.out.printf("(num1 & num2) | (num1 & num2) : 0x%x\n", num1);
System.out.println("(num1 & num2) | (num1 & num2) : " + num1);
//^ 연산 : 같을 때는 0, 다를 때는 1로 연산
num2 = ~(num1 ^ num2);
// num1 = 0000 0000
// num2 = 0011 1000
// num1 ^ num2
// 8421 8421
// 0000 0000
// 0011 1000
// ----------
// 0011 1000
// ~ 연산 : 0->1, 1->0
// 1100 0111
// 0xC7
// -57(decimal)
byte by = (byte)num2;
System.out.printf("(num1 & num2) | (num1 & num2) : 0x%x\n",by);
System.out.println("~(num1 ^ num2) : " + by);
}
}
'Language > Java_basic' 카테고리의 다른 글
Java Basic : day 2 - Example 02 : For loop 반복문(별찍기,구구단) (0) | 2019.11.20 |
---|---|
Java Basic : day 2 - Example 02 : Random / Math.random() 랜덤 숫자 할당하기 (0) | 2019.11.20 |
Java Basic : day 2 - Continue (0) | 2019.11.20 |
Java Basic : day 2 - Break ( Escape keyword) (0) | 2019.11.20 |
Java Basic : day 2 - 이중 For / while 문 (0) | 2019.11.20 |