티스토리 뷰
10진수에도 양수 1이 있고 음수 1이 있듯이 2진수에도 음수가 존재한다.
먼저, 어떤 수의 'n의 보수'는 어떤 수에 더했을 때 n이 되는 수이다.
7의 10의 보수는 3이다. 7+3 = 10
3의 10의 보수는 7이다. 3+7 = 10
이때, 3과 7은 10의 보수의 관계에 있다고 정의한다.
2의 보수 관계도 더해서 2가 되는 두 수의 관계를 말하고, 10진수 2는 2진수로 '10'이다.
2진수로 '10'은 자리올림이 발생하고 0이 되는 수를 뜻한다.
때문에 2의 보수 관계에 있는 두 2진수를 더하면 (자리올림이 발생하며) 0이된다.
* 참고로 4비트 기준으로 설명한다. *
0101 (10진수 5)
+ 1011 (10진수 -5)
10000 -> 크기가 4비트 이기 때문에 자리올림은 버려짐.
2의 보수 관계에 있는 두 2진수로 5와 -5처럼 절대값이 같고 부호가 다른 두 10진수를 표현하는 것을 2의 보수법이라한다.
0101의 2의 보수는 0101이다.
그렇다면 음수인 2진수는 어떻게 구할까??
10진 음의 정수를 2진수를 변환하기 위해서는 10진 음의 정수의 절댓값을 2진수로 변환한 다음, 그 2진수의 2의 보수를 구하면 된다.
-5(10진수) -> 5(10) -> 0101(2) -> 1011(2)
2의 보수를 구하는 공식은 정말 간단하다.
1의 보수 + 1
1의 보수는 그냥 현재 2진수에 1은 0으로, 0은 1로 변환하면 된다.
0101 -> 1010(1의 보수)
이 상태에서 1을 더해주면 2의 보수가 된다.
1010(1의보수) + 1 = 1011(2의보수)
이렇게 10진수 -5를 2진수 1011로 표현할 수 있다!
Refer
자바의 정석
'Etc' 카테고리의 다른 글
.gitignore 생성/적용 (0) | 2018.02.28 |
---|---|
url,uri의 차이 (0) | 2018.02.04 |
- Total
- Today
- Yesterday
- selenium switch_to_window
- selenium switch_to_window python
- 2의 보수법
- java toString
- virtualenv
- 중위 표현식 후위 표현식
- 후위 표기식
- jsp tomcat 연동
- 음수 10진수 음수 2진수
- java int to String
- sass
- 후위 표현식
- 후위 표기법
- sass 사용법
- 후위 표기 계산
- 2진수 음수
- sass 설치
- python virtualenv
- java String to int
- jsp tomcat
- selenium 새 탭 크롤링
- jsp 서버 연동
- 계산기 구현
- java parseInt
- jsp oracle 연동
- 후위 표기법 계싼
- 전자계산기 구현
- 중위 표기법 후위 표기법
- selenium 새 창 크롤링
- 후위 표기 수식 계싼
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |