hyeonga_code

Java_19_음수가 나오는 이유, 1의 보수, 2의 보수 본문

Java

Java_19_음수가 나오는 이유, 1의 보수, 2의 보수

hyeonga 2023. 9. 17. 06:59
반응형

-- 음수가 나오는 이유
    CPU
        - 기억 장치
        - 연산 장치
            - ALU
                - AND 회로 __/ __/ __
                - OR 회로 -[/ ]-
                -- 이를 조합하여 만든 회로를 조합 논리 회로라고 한다
                    - 가산기
                        - 자릿수를 맞춰 계산합니다.
                        - 5+8 > 3
                        - 자리 올림은 Carry가 합니다.
                    - 감산기
                        -- 고가입니다.
                    - 반가산기
                        - 자리 올림을 계산합니다.
                        - 가산기/감산기에서 자리변동이 있는 경우 반 가산기가 필요합니다.
        - 제어 장치
    - 듀얼 코어 : CPU가 2개 있는 것
        - 캐시메모리 : 기억 장치
            - 감산기가 비싸지만 기억장치가 더 비싸므로 감산기를 넣을 수 없습니다.
            - 감산 연산이 불가능합니다.
            - 음수를 더하는 기능을 필요로하게 됨으로 음수가 필요합니다.
    -- 10을 2진수로 표현 : 0000 1010
        - 맨 앞자리를 부호로 사용하겠습니다.
        - 0 : 양수
        - 1 : 음수

        - 부호화 절대값에의한 값 표현
            + 10 0000 1010
            - 10 1000 1010
            ---------------
                    1001 0100
                - 0 이 아닙니다.
        - 전체를 뒤집어주게 됩니다.
            + 10 0000 1010
            - 10 1111 0101
                -- 1의 보수라고 합니다.
            ----------------
                    1111 1111
                    - 0 이 아닙니다.
        - 1의 보수에 1을 더한 값을 구합니다.
            + 10 0000 1010
            - 10 1111 0101
            ---------------
                    1111 1111
                    +    1
            ---------------
                    0000 0000
                    - 너무 불편합니다
                    
        - 음수로 변경할 대에 1을 더해 연산합니다.
            + 10 0000 1010
            + - 10 1111 0110
            ---------------
                    0000 0000
                    -- 2의 보수가 됩니다.

반응형