달력

12

« 2019/12 »

  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  


 

연산자(Operator)

·       연산자란 자료의 가공을 위해 정해진 방식에 따라 계산하고 결과를 얻기 위한 행위를 의미하는 기호들을 의미합니다.

·       각 연산자들은 연산을 하기 위해 인식하는 자료형들이 정해져 있습니다.

 

 

Posted by codedragon codedragon

댓글을 달아 주세요

비트 연산 특징

  • 왼쪽으로의 비트 열 이동은 2의 배수의 곱
  • 오른쪽으로의 비트 열 이동은 2의 배수의 나눗셈

   

   

   

소스코드

  1. public class OperatorEx18 {
  2.    
  3.         public static void main(String[] args) {
  4.                  
  5.                 System.out.println("왼쪽으로 비트열 이동");
  6.                 byte n1 = 2;
  7.                 byte r1 = (byte)(n1 << 1);
  8.                 System.out.println("n1 << 1: " + r1);
  9.                 byte r2 = (byte)(n1 << 2);
  10.                 System.out.println("n1 << 2: " + r2);
  11.                 byte r3 = (byte)(n1 << 3);
  12.                 System.out.println("n1 << 3: " + r3);
  13.                 byte r4 = (byte)(n1 << 4);
  14.                 System.out.println("n1 << 4: " + r4);
  15.                  
  16.                  
  17.                 System.out.println("\n오른쪽으로 비트열 이동");
  18.                 byte n2 = 10;
  19.                 byte r5 = (byte)(n2 >> 1);
  20.                 System.out.println("n2 >> 1: " + r5);
  21.                 byte r6 = (byte)(n2 >> 2);
  22.                 System.out.println("n2 >> 2: " + r6);
  23.                 byte r7 = (byte)(n2 >> 3);
  24.                 System.out.println("n2 >> 3: " + r7);
  25.                 byte r8 = (byte)(n2 >> 4);
  26.                 System.out.println("n2 >> 4: " + r8);
  27.         }
  28. }


 

   

출력결과 

   

Posted by codedragon codedragon

댓글을 달아 주세요

   

   

비트연산의 특징

  • 왼쪽으로의 비트 열 이동은 2의 배수의 곱
  • 오른쪽으로의 비트 열 이동은 2의 배수의 나눗셈

   

   

   

Posted by codedragon codedragon

댓글을 달아 주세요

비트 연산자

   

   

소스코드

   

  1. public class OperatorEx10 {
  2.          
  3.         public static void main(String[] args){
  4.                 System.out.println("=========비트 연산자=========");
  5.                 System.out.println("");
  6.                  
  7.                 byte a = 12;
  8.                 // 128 64 32 16 8 4 2 1
  9.                 // 0   0  0  0  1 1 0 0
  10.                  
  11.                 byte b = 20;
  12.                 // 128 64 32 16 8 4 2 1
  13.                 // 0   0  0  1  0 1 0 0
  14.                  
  15.                 System.out.println("비트단위의  AND(&): ");
  16.                 /*
  17.                  1   2    결과
  18.                 0       0       0
  19.                 1       0       0
  20.                 0       1       0
  21.                 1       1       1*/
  22.                  
  23.                 byte c = (byte) (& b);
  24.                 // 128 64 32 16 8 4 2 1
  25.                 // 0   0  0  0  1 1 0 0
  26.                 // 0   0  0  1  0 1 0 0
  27.                 //----------------------
  28.                 // 0   0  0  0  0 1 0 0
  29.                  
  30.                 System.out.println("a : " + a);
  31.                 System.out.println("b : " + b);
  32.                 System.out.println("a & b : " + c);
  33.                  
  34.    
  35.                  
  36.                 System.out.println("");
  37.                 System.out.println("비트단위의  OR(|): ");
  38.                 /*
  39.                  1   2    결과
  40.                 0       0       0
  41.                 1       0       1
  42.                 0       1       1
  43.                 1       1       1*/
  44.                  
  45.                 byte d = (byte) (| b);
  46.                 // 128 64 32 16 8 4 2 1
  47.                 // 0   0  0  0  1 1 0 0
  48.                 // 0   0  0  1  0 1 0 0
  49.                 //----------------------
  50.                 // 0   0  0  1  1 1 0 0
  51.                  
  52.                 System.out.println("a : " + a);
  53.                 System.out.println("b : " + b);
  54.                 System.out.println("a | b : " + d);
  55.                  
  56.                  
  57.    
  58.                 System.out.println("");
  59.                 System.out.println("비트단위의  XOR(^): ");
  60.                 /*
  61.                  1   2    결과
  62.                 0       0       0
  63.                 1       0       1
  64.                 0       1       1
  65.                 1       1       0*/
  66.                  
  67.                 byte e = (byte) (^ b);
  68.                 // 128 64 32 16 8 4 2 1
  69.                 // 0   0  0  0  1 1 0 0
  70.                 // 0   0  0  1  0 1 0 0
  71.                 //----------------------
  72.                 // 0   0  0  1  1 0 0 0
  73.                  
  74.                 System.out.println("a : " + a);
  75.                 System.out.println("b : " + b);
  76.                 System.out.println("a ^ b : " + e);
  77.          
  78.         }
  79. }

 


   

   

출력결과

   

Posted by codedragon codedragon

댓글을 달아 주세요

비트연산자

   

소스코드

  1. public class OperatorEx16 {
  2.         public static void main(String[] args)
  3.         {
  4.                 int num1=5;             /* 00000000 00000000 00000000 00000101 */
  5.                 int num2=3;             /* 00000000 00000000 00000000 00000011 */
  6.                 int num3=-1;    /* 11111111 11111111 11111111 11111111 */
  7.                  
  8.                 System.out.println(num1 & num2);
  9.                 // 00000000 00000000 00000000 00000101
  10.                 // 00000000 00000000 00000000 00000011
  11.                 // 00000000 00000000 00000000 00000001
  12.                  
  13.                 System.out.println(num1 | num2);
  14.                 // 00000000 00000000 00000000 00000101
  15.                 // 00000000 00000000 00000000 00000011
  16.                 // 00000000 00000000 00000000 00000111
  17.                  
  18.                 System.out.println(num1 ^ num2);
  19.                 // 00000000 00000000 00000000 00000101
  20.                 // 00000000 00000000 00000000 00000011
  21.                 // 00000000 00000000 00000000 00000110
  22.                  
  23.                 System.out.println(~num3);     
  24.                 // 11111111 11111111 11111111 11111111
  25.                 // 00000000 00000000 00000000 00000000
  26.         }
  27. }


 

   

출력결과

   

   

Posted by codedragon codedragon

댓글을 달아 주세요


 

비트 연산 진리표

 

& (AND)

A

B

A & B

0

0

0

0

1

0

1

0

0

1

1

1

 

 

 

| (OR)

A

B

A | B

0

0

0

0

1

1

1

0

1

1

1

1

 

 

 

^ (XOR)

A

B

A ^ B

0

0

0

0

1

1

1

0

1

1

1

0

 

 

 

~ (NOT)

A

~A

0

1

1

0

 

 


Posted by codedragon codedragon

댓글을 달아 주세요