진법
10진법과 2진법
10진법 : 0~9의 숫자로만 데이터를 표현
2진법 : 0과 1의 숫자로만 데이터를 표현
비트(bit, binary digit) : 한 자리의 2진수, 컴퓨터가 값을 저장할 수 있는 최소단위
바이트(byte) : 비트 8개를 묶은 단위(=8bit), 데이터의 기본 단위
워드(word) : CPU가 한 번에 처리할 수 있는 데이터의 크기, CPU의 성능에 따라 워드의 크기가 달라짐
ex) 32비트 CPU -> 1word = 32비트, 64비트 CPU -> 1word = 64비트
n비트로 표현할 수 있는 10진수
값의 개수 : 2^n
값의 범위 : 0 ~ 2^n - 1
8진법과 16진법
8진수 : 2진수 3자리를 한 자리로 표현
16진수 : 2진수 4자리를 한 자리로 표현
2진수 1010101100
8진수 : 1254
16진수 : 2AC
10진수를 n진수로 변환
10진수에서 n(2, 8, 16)진수로 변환하려면 n으로 반복해서 나눈다
결과값인 몫부터 시작해 아래에서 위쪽으로 모든 나머지를 나열하면 해당 진수로 변환이 완료된다
n진수를 10진수로 변환
각 자리의 수에 해당 단위의 값을 곱해서 모두 더하면 된다
10진 소수점수를 2진 소수점수로 변환하는 방법
10진 소수점수에 2를 계속 곱한다
2의 보수법
더해서 2가 되는 두 수의 관계, 10진수 2는 2진수로 10
2진수로 10은 자리올림이 발생하고 0이 되는 수
2의 보수 관계에 있는 두 2진수(부호가 다르고 절대값이 같은 수)를 더하면 0이 된다
음수를 2진수로 표현하기
10진 음의 정수를 2진수로 변환하려면 10진 음의 정수의 절대값을 2진수로 변환한다
그 후에 2진수의 2의 보수를 구한다
ex) -5(10) --> 5(10) --> 0101(2) --> 1011(2)
(절대값) ( 2진수) ( 2의 보수)
1의 보수 : 0을 1로, 1을 0으로 바꾸면 된다
2의 보수 = 1의 보수 + 1
0101 : 1의 보수 = 1010
: 2의 보수 = 1011
※ 음수의 2진 표현을 구하는 방법
1. 음수의 절대값을 2진수로 변환한다
: -5의 절대값인 5를 2진수로 변환한다 10진수 5를 2진수로 변환하면 0101 이다
2. 1에서 구한 2진수의 1을 0으로 0은 1로 바꾼다 (1의 보수 구하기)
: 0101이 1010 이 된다
3. 2의 결과에 1을 더한다 (2의 보수 구하기, 1의 보수 + 1)
: 1010에 1을 더하면 1011이 되고 이것이 -5의 2진 표현이다
'Backend > Java' 카테고리의 다른 글
자바의 정석 정리(7) - 아스키와 유니코드 (0) | 2022.05.20 |
---|---|
자바의 정석 정리(6) - 기본형 타입 (0) | 2022.05.19 |
자바의 정석 정리(4) - 실수형 출력 (0) | 2022.05.18 |
자바의 정석 정리(3) - Scanner (0) | 2022.05.18 |
자바의 정석 정리(2) - 리터럴과 지시자 (0) | 2022.05.15 |