자바 도전기-2
오늘은 진법공부부터 시작했다.
진법 해석은 귀찮지만 그래도 공부해야하니 열심히 했다.
대부분의 컴퓨터는 2진 체계로 설계되었기 때문에, 2진법을 알지 못하면 컴퓨터의 동작원리나 데이터 처리방식을 온전히 이해할 수 없다.
25(10)->11001(2)
한 자리의 2진수를 '비트'라고 하며, 1 비트는 컴퓨터가 값을 저장할 수 있는 최소단위이다.
1바이트는 1비트 8개를 묶은 단위로 데이터의 기본 단위로 사용한다.
워드(word)는 'CPU가 한 번에 처리할 수 있는 데이터의 크기'를 의미한다
n비트로 표현할 수 있는 10진수
값의 개수 : 2^n
값의 범위 : 0~2^n-1
8진수는 2진수 3자리를, 16진수는 2진수 4자리를 각각 한자리로 표현할 수 있기 때문에 자리수가 짧아져서 알아보기 쉽고 서로 간의 변환방법 또한 매우 간단하다
8진수 | 1 | 3 | 5 | 3 | 0 | 2 |
2진수 | 1 | 011 | 101 | 011 | 000 | 010 |
16진수 | - | B | - | A | C | 2 |
8진수는 2진수의 끝부터 3자리씩 끊으면서, 16진수는 2진수의 끝부터 4자리씩 끊으면서, 표현한다.
8은 2의 3제곱이고, 16은 2의 4제곱이기 때문이다
10진수를 n진수로 변환
10진수를 다른 진수로 변환하려면, 해당 진수로 나누고 나머지 값을 옆에 적는 것을 더 이상 나눌 수 없을 때까지 반복한 다음 마지막 몫과 나머지를 아래부터 위로 순서대로 적으면 된다
나누기 | 몫 | 나머지 |
---|---|---|
2 | 11 | |
2 | 5 | 1 |
2 | 2 | 1 |
1 | 0 |
11(10)->1011(2)가 된다
8진수, 16진수도 위와 같은 방법으로 하면 된다
n진수를 10진수로 변환
10진수 | 2진수 | 2진수 | 2진수 | 2진수 | |
---|---|---|---|---|---|
1011 | = | 1 * 23 | 0 * 22 | 1 * 21 | 1 * 20 |
1011 | = | 1 * 8 | 0 * 4 | 1 * 2 | 1 * 1 |
1011 | = | 8 | 0 | 2 | 1 |
1011 | = | 11 |
1011(2)->11(10)이 된다
8진수, 16진수도 위와 같은 방법으로 하면 된다
음수의 2진 표현-2의 보수법
어떤 수의 'n의 보수'는 더했을 때 n이 되는 수를 말한다
7의 '10의 보수'는 3이고, 3의 '10의 보수'는 7이다. 3과 7은 '10의 보수의 관계'에 있다고 한다
2의 보수= 1의 보수+1
1의 보수는 0을 1로, 1을 0으로만 바꾸면 된다.
예를들어, 2진수'0101'의 1의 보수는 '1010'이다.
음수의 2진표현을 구하는 방법
(1) 음수의 절대값을 2진수로 변환한다
(2) (1)에서 구한 2진수의 1을 0으로 0은 1로 바꾼다(1의 보수 구하기)
(3) (2)의 결과에 1을 더한다(2의 보수 구하기, 1의 보수 +1)
Author And Source
이 문제에 관하여(자바 도전기-2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimchiwarrior/자바-도전기-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)