2.3 진법 (Radix)
컴퓨터는 0과 1만을 처리할 수 있는 전자 기기입니다. 하지만 우리는 일상생활에서 10진수(Decimal)를 주로 사용하고 있습니다. 그래서 변수를 더욱 깊게 이해하기 위해 컴퓨터가 값을 어떻게 저장하고 읽는지를 아는 것이 중요합니다.
1. 진법의 이해
10진법: 0부터 9까지 열 개의 숫자를 사용하여 수를 나타냅니다. 2진법: 0과 1 두 개의 숫자만으로 수를 나타냅니다. 컴퓨터가 사용하는 형태입니다. 8진법: 0부터 7까지, 8개의 숫자를 사용합니다. (최근에는 잘 쓰이지 않음) 16진법: 0부터 9까지 열 개의 숫자와 A부터 F까지의 여섯 개 알파벳을 사용하여 수를 나타냅니다(A=10, F=15).
graph TD
A[10진수: 15] --> B[2진수: 1111]
A[10진수: 15] --> C[8진수: 17]
A[10진수: 15] --> D[16진수: F]
2. 자바에서 다양한 진법 리터럴 사용하기
자바 소스 코드 안에서 2진수, 8진수, 16진수 리터럴을 변수에 저장할 수 있습니다. 자바는 서로 다른 진법을 구분하기 위해 특수한 접두사를 붙여 값을 나타냅니다.
- 10진수: 접두사 없음
- 2진수: 접두사
0b또는0B - 8진수: 접두사
0 - 16진수: 접두사
0x또는0X
진법 리터럴 사용 예시
int decNum = 10; // 10진수 구문 (값: 10)
int binNum = 0b1010; // 2진수 구문 (값: 10)
int octNum = 012; // 8진수 구문 (값: 10)
int hexNum = 0xA; // 16진수 구문 (값: 10)
System.out.println(decNum);
System.out.println(binNum); // 내부적으로 모두 10진수로 출력됨
System.out.println(octNum);
System.out.println(hexNum);
3. 비트(bit)와 바이트(byte)
- bit (비트): 컴퓨터의 가장 기본이 되는 데이터 단위. 0이거나 1.
- byte (바이트): 비트를 8개 묶은 단위.
1 byte = 8 bit.
자바의 정수 자료형 중 가장 작은 단위가 1 byte (byte 형)이며, 이를 통해 -128에서 127까지의 크기를 저장할 수 있습니다. 16진수 2자리로는 정확히 1 바이트의 값을 한 눈에 알기 쉽게 나타낼 수 있어서 자주 사용됩니다. (0xFF == 255)