ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA_이론정리02_연산자1
    1. JAVA/1.1 이론정리 2022. 3. 14. 12:05

    컴퓨터가 숫자를 기억하는 방법

    ==> 정수의 경우
        => 2진수로 변환하고 부호비트는 무조건 0을 붙인다.
    
        예) 10 =>   2|10 = 0
                      2|5 = 1
                       2|2 = 0
                           2|0    = 1
    
                           10==> 00001010
                                2의 3승 + 2의1승 = > 10     
    
    
        음수의 경우
        => 9의 보수법을 이용해서 처리한다.
            1) 양수로 가정하고 2진수로 변환한다.
            2) 보수화 시킨다.(현재 숫자를 바꾼다. 0->1, 1->0 ==> 비트를 뒤집는다)
            3) +1 해준다.
            4) 부호비트에 강제로 1을 지정한다.

     

    연산자
    ==> 데이터를 가공하기 위해서 사용되는 기호

    용어
        연산자 - 가공방식을 나타내는 기호
        피연산자 - 가공에 사용되는 데이터 
    
        예)
            1 + 2 ==> + : 연산자 / 1,2 : 피연산자
    
        참고) 
            연산자를 사용하면 가공된 결과가 나오는데
            이 결과는 항상 큰 형태로 나오는 것을 원칙으로 한다.
    
            예) 1 + 3.14 = > 4.14 이때 결과값의 데이터 형태는 double이다.
                int + double == > int(정수형) 데이터가 double(실수형)형태로 자동형변환 ==> double;
                타입이 다른 두 데이터를 연산하게 되면 항상 큰 타입쪽으로 결과값이 나온다.

    문제 ]
    'J'+3.14 ==>74+3.14
    'J'는 아스키 코드값이 74로 변환이 돼서 연산을 하게 된다.
    따라서 74+3.14 의 연산을 하게 되고 결과값은 double형 데이터 77.14가 된다.

                참고] 
    
                    기본데이터타입 + 문자열 데이터 ==> 문자열로 변환
                    예) 3.14+"!!!" == "3.14!!!"
                        => 이때 "+"는 산술연산자가 아닌 데이터 두개를 결합하는 결합연산자로서 작동함.
    
    
                float + long ==> float
                (float가 4byte이지만, long가 8byte이어도 실수가 더 많이 저장됨으로 float로 저장됨)
    
            주의]
            수학에서는 비교연산자를 사용할때 
            3개의 항을 동시에 비교할 수 있었지만, 
            프로그래밍 에서는 절대로 3개 이상의 피연산자를 동시에 연산하는 경우는 없다.
    
            ex)
                1<x<10 : 2~9 --> 수학에서 사용하는 방식
                x > 1 and x < 10;   --> 프로그래밍 방식

     

    종류

    1. 사칙연산자
        ==> 더하고 빼고 곱하고 나누고 나머지구하는 연산자
    
            기호 
                + - 더하기 연산자
                - - 빼기 연산자
                * - 곱하기 연산자
                / - 나누기 연산자
                % - 나머지 연산자
    
            참고 ] 
                사칙연산자는 피연산자가 반드시 2개가 필요하다.
                참고 ] 
                    사칙연산자가 여러개 동시에 기술된 경우에는
                    왼쪽부터 차례로 계산해서 결과값을 만들어나간다.
    *                
    2. 대입연산자
        ==> 변수에 데이터를 기억하도록 하는 연산자
    
                기호    =  , += , -= , /= , *= , %= 
    
                형식 ] 
                    변수 = 데이터;
                    * 반드시 대입연산자 왼쪽에는 변수가, 
                      오른쪽에는 데이터가 위치해야 한다.
    
                의미 ] 
                    데이터를 변수에 기억시키세요.
    
                참고 ]
                    자바는 모든 연산이 반드시 대입연산자가 있어야 기억할 수 있다.
                    만약 대입하지 않으면 연산의 결과는 기억되지 못한다. 
    
                참고 ] 
                    모든 연산자는 같은 연산자가 중복된 경우, 왼쪽에서 오른쪽으로 진행하면서 연산한다.
    
                    예 ] 
                        1 + 2 + 3 + 4 + 5 = 
                        1 + 2
                              + 3
                                  + 4
                                          + 5
    
                          이런 순서로 연산 진행하는데 
    
                          대입연산자 만큼은 오른쪽에서 왼쪽으로 진행한다.
    
                          예] 
                              int a = 10;
                              int b = 20;
                              int c = 30;
                              int d = 40;
                              a = b = c = d;
                              <--------------- 방향으로 대입연산이 이루어진다.
                              a : 40, b : 40, c : 40, d : 40
    
    
                  참고 ] 
                      변수 =변수 + 데이터;
                      변수

     

    참고 ] + 기호는 문자열 연산 에서도 사용할 수 있다.
    (문자열 연산은 오직 + 기호만 사용할 수 있다.)
    ==> 이 때 문자열이 결합되어서 결과가 만들어지게 된다.
        결합이란?
            앞 문자열에 뒤 문자열이 붙어서 만들어지는 것.
    
            "홍"+"길동" ==> "홍길동"
    
    
            참고 ] 
                모든 기본 데이터 타입은 데이터를 문자열에 결합하면 
                결과는 문자열이 만들어진다.
    
                '홍'+"길동" =>"홍길동"
                char + String => String
    
            참고 ]
                문자열 결합은 문자열이 단 한개만 있어도 허용된다.
                즉 결합하는 두 항 중에서 하나만 문자열이라도 문자열 결합으로 처리된다.                
                예 ] 
                    "홍" + 1000 ==> "홍1000"
                     200 + "홍" ==> "200홍"
    
            참고 ] 
                System.out.println("데이터"); 에서는 오직 한개만 출력할 수 있다.
                예 ) 
                    System.out.println("홍길동","고길동","둘리");<==(X)
    
                여러개를 출력하고자 하면 문자열 결합을 이용해서 결합해서 하나의 문자열을 만든 후에 출력해야 한다.
    public class Test02 {
    	public static void main(String[] args) {
    		//문자열 변수를 만드는 방법
    		
    		//1. 데이터를 직접 입력해서 만드는 방법
    		String name1 = "홍길동";
    		//literal풀에 있는 값을 name1이라는 변수가 기억
    		
    		//2. 클래스를 new 시켜서 만드는 방법
    		String name2 = new String("홍길동");
    		//힙에 스트링 클래스를 복사해서 홍길동을 기억시킴...??????
    		
    		System.out.println("name1 : "+name1);	// literal Pool 주소 기억
    		System.out.println("name2 : "+name2); 	// heap 영역 주소 기억
    		System.out.println("name1 == name2 : "+(name1==name2));
    		//name1 : literal Pool 주소값 =/= name2 : heap 영역 주소값
    	}
    }
    3. 증감연산자
        형식] 
            ++변수 : 연산자 기준으로 
    
            변수++ : 
    
    
    
        기호 ] 
            ++ : 1 증가시켜준다.    ==> +1
            -- : 1 감소시켜준다.    ==> -1
    
        참고 ]  
            모든 연산은 일반적으로 중앙처리장치에서 처리되는 것이 원칙이다.
            증감연산자, 시프트 연산자는 중앙처리장치를 거치지않는다.
            메모리 상에서만 연산이 되어서 처리된다.
    
    
    4. 부호반전연산
        기호 ]
            -
        형식 ]
            -데이터;
    
    
    5. 비교연산자
        ==> 두 데이터 대소 관계를 비교하는 연산자
    
        기호 ] 
            == : 같다
            != : 다르다 (! : 부정연산자)
            >      크다
            <       작다
            >= : 크거나 같다 =>는 안됨
            <= : 작거나 같다
    
            주의] 
            사용되는 데이터와 관계없이 결과는 항상 논리값(true , false)으로 나온다.
    
            참고 ] 
                이 연산자는 주로 if, for, while.... 제어 명령에서 질문이 필요할 떄
                많이 사용하는 연산자이다.  
    
            *******************
            참고 ] 
                문자열을 비교할 경우에는 equals() 함수를 사용해서 비교해야 정확하게
                데이터를 비교하게 된다.
    
            참고 ] 
                비교연산자는 3항을 동시에 비교하지 못한다.
    
                예 ]
                    10<=no<100 (X)
                    no>=10 && no<100
    
    6. 논리연산자
        기호 ]
            & : and
            | : or(또는)
            &&
            ||
            !
    
    
    7. 비트 연산자
    
    8. 3항연산자(조건연산자)

    '1. JAVA > 1.1 이론정리' 카테고리의 다른 글

    JAVA_이론정리06_배열2  (0) 2022.03.14
    JAVA_이론정리05_배열  (0) 2022.03.14
    JAVA_이론정리04_반복문과 조건문  (0) 2022.03.14
    JAVA_이론정리03_연산자2  (0) 2022.03.14
    JAVA_이론정리01_데이터종류  (0) 2022.03.14
Designed by Tistory.