JAVA

3일차 // 과제 10( java) 연산 left shift < < / rightshift > > , bit 연산, Random 값, 삼항연산자

aesup 2021. 1. 13. 18:23
728x90

     // 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);


과제10

다음의 결과 값을 먼저 기입하고 결과를 확인하라.

int number;

number = 5;

number = number << 4;

number = number >> 3;

number = number >> 1;

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
package work020113;
 
 
public class homeworkjava05 {
    public static void main(String[] args) {
        
        int number;
        number = 5;
        
        number = number<<4;
        System.out.println(number);
        
        number = number>>3;
        System.out.println(number);
        
        number = number<<1;
        System.out.println(number);
    }
}
 
 
outPut
 
80
10
20
cs

과제11

다음의 결과 값을 먼저 기입하고 결과를 확인하라.

int num1, num2;

 

num1 =128;

num2 = 56;

 

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
package work020113;
 
 
public class homeworkjava05 {
    public static void main(String[] args) {
        
        int num1, num2;
        
        num1 = 128;
        num2 = 56;
        
        //16진수로 바꾼다.
        
        System.out.printf("0x%x \n", num1); 
        System.out.printf("0x%x \n", num2);//16진수로 바꾼다.
        
        num1 = 0x80;
        num2 = 0x38;
        
        //num1
        //1000 0000
        
        //num2
        //0011 1000
        
        //&
        //1000 0000
        //0011 1000
        //-> 0000 0000 
        
        
        num1 =(num1 & num2)|(num1 & num2);
        
        //num1 -> 0000 0000 // 0011 1000  
        num2 =~(num1 ^ num2);
        // num2 - > ~(0011 1000)
        // num2 - > 1100 0111
        // num2 - > 0xC7
        System.out.printf("0x%x \n", num1);
        System.out.printf("0x%x \n", num2);
    }
}
 
cs

int 가 아닌 byte로 변수를 잡으면 더 좋다.

 

OUTPUT

 


과제12

하나의 수를 입력 받고 삼항 연산자를 사용하여 양수인지 음수인지 판단하라.

 

//수를 입력

 

// 판단

 

// 출력

양수입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package work020113;
 
import java.util.Scanner;
 
public class homework12 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int num;
        num = sc.nextInt();
        
        String A;
        
        A = ( num > 0)?"양수입니다":"음수입니다";
        System.out.println(A);
    }
}
 
 
cs

OUTPUT

 


과제12

랜덤 수를 취득하라.

 

 

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
package work020113;
 
public class homework12_02 {
    public static void main(String[] args) {
        
    
        
        int random;
        //랜덤 수를 취득하라
        //범위 0~99     개수: 1개
        random = (int)(Math.random()*100);
        System.out.println(random);
        
        //범위: 11, 12, 13, 14, 15 개수 1개
        random = (int)((Math.random()*5)+11);
        System.out.println(random);
        
        //범위: 1~45 개수 6개
        random = (int)(Math.random()*45);
        System.out.print(random+ "\t");
        
        random = (int)(Math.random()*45);
        System.out.print(random+ "\t");
        
        random = (int)(Math.random()*45);
        System.out.print(random+ "\t");
        
        random = (int)(Math.random()*45);
        System.out.print(random+ "\t");
        
        random = (int)(Math.random()*45);
        System.out.print(random+ "\t");
        
    }
    
}
 
cs

OUTPUT

 

728x90