hyeonga_code
Java_19_음수가 나오는 이유, 1의 보수, 2의 보수 본문
-- 음수가 나오는 이유
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의 보수가 됩니다.
'Java' 카테고리의 다른 글
Java_20_연산자_부호 연산자 + - (0) | 2023.09.18 |
---|---|
Java_20_연산자_단항 연산자 (0) | 2023.09.18 |
Java_18_표준 입출력 (0) | 2023.09.17 |
Java_17_문자 데이터 문자, 문자열 (0) | 2023.09.16 |
Java_16_Wrapper Class 래퍼클래스, 언박싱, 박싱 (0) | 2023.09.16 |