연산자(Operator)

 

산술 연산자 + - * / %
비교
논리
ㄱ. 일반 논리 연산자 ! && ||
ㄴ. 비트 논리 연산자 ~ & ^ |
             ~              틸드 연산자(비트 부정 연산자)      --각각의 비트를 부정하는 연산자
             &              비트 논리 AND 연산자             --> 각 비트가 둘다 참(1)일때만 참으로 연산 하겠다.
             ^                XOR 연산자
                            (eXclusiveOR 연산자)              --> 서로 다를때 참인 연산자
                            베타적인 == 서로 다르다
              |               비트 논리 OR 연산자 --> 각 비트 둘중 하나가 참이면  참으로 연산하겠다.

 

 

 

비트연산자

 

 

int i = 10;
System.out.println(~i);                           // -11이 출력된다.  (~10, -11이랑이진법 표현이 같기 때문이다.)

비트 연산자 ~10               ~0000 1010
각각의 비트 부정                1111  0101     ==  -11

 

음수 표현방법(2의 보수법)
-11
1) 절대치  11
2) 2진수   0000  1011
3) 보수    1111  0100
4) +1  [1111 0101]

 

이진법 음수로 거꾸로 돌리는 방법 (음수 표현방법을 역으로 하면된다.)

                                      1111  0101

4)-1                                 1111  0100
3)보수                              0000  1011

10진법 변환                        2^3 + 2^1 + 1 = 11

1)절대치                           11   ---> -11

 

System.out.println(10 & 3);                                     //2
10                          0000 1010
3                            0000 0011
&                           0000 0010                         --> 각 비트가 둘다 참(1)일때만 참으로 연산 하겠다.

 

 

System.out.println(10 ^ 3);                                     //9
10                          0000 1010
3                            0000 0011
^                           0000 1001                         --> 서로 다를때 참인 연산자

 

System.out.println(10 | 3);                                      //11
10                          0000 1010
3                            0000 0011
|                             0000 1011                         --> 각 비트 둘중 하나가 참이면  참으로 연산하겠다.

 

 

 

Shift 연산자

 

 

쉬프트(shift) 연산자    >>      <<     >>>

 

System.out.println(15>>2);                                      // 3출력

[0][0][0][0][1][1][1][1]                                     //15

오른쪽 2칸 이동 시킨다음에 빈공간 다음 비트(첫 부호비트)로 앞을 채운다

첫 부호비트 가 1이면 1로 채우고 0이면 0으로 채운다

[ ][ ][0][0][0][0][1][1]

      ↑     

  부호비트 

[0][0][0][0][0][0][1][1]                                     //3

 

 

System.out.println(15>>>2);                            //3 첫부호비트 상관없이 앞에 공백을 모두 0으로 채운다.

[ ][ ][0][0][0][0][1][1]

[0][0][0][0][0][0][1][1]

 

 

System.out.println(15<<2);                              //60

[0][0][1][1][1][1][ ][ ]

왼쪽으로 2칸 이동 시킨 다음에 왼쪽 빈공간 모두 0으로 채워라

 

 

 

10 을 2진수로 출력하고 싶을때 0000 1010

매개변수는 int 

10 -> 2진수         

Integer.toBinaryString           

System.out.println(Integer.toBinaryString(10)); // "1010"

                                                              string 리턴 자료형 (==자료형이 문자형이다)

 

10 -> 8진수 

Integer.toOctalString 

System.out.println(Integer.toOctalString(10)); // "12"

                                                              string 리턴 자료형 (==자료형이 문자형이다)

 

10-> 16진수 

Integer.toHexString 

System.out.println(Integer.toHexString(10)); // "a" 

                                                              string 리턴 자료형 (==자료형이 문자형이다)

 

 

 

int-> String  형 변환

10 -> "10" 형 변환

 

String n = 10+"";                                      //"10"

 

 

String -> int  형변환

int m = Integer.parseInt("10");                      //10

 

복사했습니다!