728x90
진법
- 2진법, 8진법, 10진법, 16진법 있음
- 8진수는 2진수 3자리를 한 자리로 표현할 수 있음
- 16진수는 2진수 4자리를 한 자리로 표현할 수 있음
n비트로 표현할 수 있는 10진수
- 값의 개수 : 2^n
- 값의 범위 : 0 ~ 2^n -1
참고) 워드(word)는 'CPU가 한 번에 처리할 수 있는 데이터의 크기'를 의미
32비트 cpu 에선 1워드 = 4바이트, 64비트 cpu에선 1워드= 8바이트임
실수의 진법변환
10진 소수점수를 2진 소수점수로 변환하는 방법
- 10진 소수에 2를 곱합
- 0.625 * 2 = 1.25
- 위의 결과에서 소수부만 가져다가 다시 2를 곱함
- 0.25 * 2 = 0.5
- 1, 2번 방식을 소수부가 0이 될 때까지 반복
- 0.625 * 2 = 1.25
- 0.25 * 2 = 0.5
- 0.5 * 2 = 1.0
- 위 결과 정수부분만을 아래로 순서대로 적고 ' 0. ' 을 붙이면 된다
- 0.625 (10진수) = 0.101 (2진수)
2진 소수점수를 10진 소수 점수로 변환하는 방법
- 0.101 (2진수) = { 1 * 2^(-1) } + { 0 * 2^(-2) } + { 1 * 2^(-3) }
= 0.625 (10진수)
보수
- 덧셈 회로를 이용하여 뺄셈을 수행하기 위해 사용함
- r진법에는 r의 보수와 r-1의 보수가 존재함
- 2진법에는 2의 보수와 1의 보수가 존재
- 10진법에는 10의 보수와 9의 보수가 존재
- r 진법에서 r의 보수
- A라는 수에 B라는 수를 더해서 각 자리마다 자리올림이 발생하고 해당 자리는 0이 될 때, B를 A에 대한 r의 보수라고 정의함
- ex) 10진법에서 33의 10의 보수는? 답) 67
- ex) 2진법에서 10101의 2의 보수는? 답) 01011
- A라는 수에 B라는 수를 더해서 각 자리마다 자리올림이 발생하고 해당 자리는 0이 될 때, B를 A에 대한 r의 보수라고 정의함
- r 진법에서 r-1의 보수
- A라는 수에 B라는 수를 더한 결과값의 각 자리가 (r-1)이 될 때, B를 A에 대한 (r-1)의 보수라고 정의함
- ex) 10진법에서 33의 9의 보수는? 답) 66
- ex) 2진법에서 10101 의 1의 보수는? 답) 01010
- A라는 수에 B라는 수를 더한 결과값의 각 자리가 (r-1)이 될 때, B를 A에 대한 (r-1)의 보수라고 정의함
10진 음의 정수를 2진수로 표현하기
- 10진 음의 정수의 절대값을 2진수로 변환한 후 그 수의 2의 보수를 구함
보수를 이용한 뺄셈
1의 보수 뺄셈
- 빼는 수의 1의 보수를 구한 다음 더함
- 덧셈결과에 자리 올림이 생겼다면, 최하위 비트에 1을 더하고 자리올림된 것은 제외함
- 덧셈 결과에 자리 올림이 생기지 않았다면, 연산 결과에 대해 1의 보수를 구한 후 '-' 부호를 붙임
2의 보수 뺄셈
- 빼는 수의 2의 보수를 구하고 더함
- 최상위비트 자리올림이 생겼다면, 자리올림을 제외한 나머지 부분이 연산 결과임
- 최상위비트 자리올림이 안생겼다면, 연산결과의 2의 보수를 구한 후 '-' 부호를 붙임
728x90
'[자바] > 자바의 정석 - 3판' 카테고리의 다른 글
Chapter04. 조건문과 반복문 (0) | 2021.08.27 |
---|---|
Chapter03. 연산자 (0) | 2021.08.26 |
Chapter 02. 변수 (0) | 2021.08.18 |
Chapter01. JAVA 프로그램 (0) | 2021.08.16 |
0. Java API , JAVA 공부 방법 (0) | 2021.08.16 |