1. bit와 byte
- 컴퓨터는 전자기기임. 즉, 모든 작업을 할 때 전기가 필요함
-> 그런데, 어떻게 전기로 이러한 작업들이 가능할까?
- 가장 쉽게 생각하려면 전구를 생각하면 됨
-> 불이 꺼져 있거나 불이 켜져 있거나
-> 컴퓨터는 이러한 단순한 이론에서 시작되어 만들어졌고,
이 기본 사항은 아직 바뀌지 않음
- 즉, 기본적인 처리는 0과 1, 꺼져 있는 것과 켜져 있는 것으로 나뉨
-> 1 bit라는 것은 0과 1로 표시할 수 있는 하나의 단위임
-> 그리고 8 bit는 1 byte가 됨
- 8비트로 나타낼 수 있는 수는 8칸의 공간이 있고,
0과 1로 표현이 가능하기 때문에 2x2x2x2x2x2x2x2 = 256가지의 표현이 가능함
-> 여기서 8비트를 4자리씩 끊으면 4비트 두 개로 표현할 수 있고,
각 4자리는 16진수로 표현이 가능하기 때문에
16진수 두 개로 8비트, 즉 1바이트를 표현할 수 있음
2. 비트 연산자란?
- 자바에서 제공되는 비트 연산을 처리하는 연산자에는
크게 두 개의 숫자를 비교하는 bitwise 연산자와 비트를 이동하는 bit shift 연산자가 있음
- 먼저 bitwise 연산자를 살펴봄
(1) & : AND 연산
(2) | : OR 연산
(3) ^ : XOR 연산
a = 00000001
b = 00000111
a&b = 00000001
a = 00000001
b = 00000111
a|b = 00000111
a = 00000001
b = 00000111
a^b = 00000110
- 추가로, 숫자가 하나만 있어도 되는 연산자가 있음
~ : unary 연산(Not 연산이라고도 부름)
a = 00000001
~a = 11111110
- 마지막으로, bit shift 연산에는 다음과 같은 것들이 제공됨
(1) << : 왼쪽 이동
(2) >> : 오른쪽 이동
(3) >>> : 부호 상관 없는(unsigned) 오른쪽 이동
a = 00000001
a<<1 = 00000010
a = 10000000
a<<1 = 00000000
a = 00000010
a>>1 = 00000001
a = 00000001
a>>1 = 00000000
a = 00000010
a>>>1 = 00000001
a = 00000001
a>>>1 = 00000000
참고
- 자바의 신
'Java' 카테고리의 다른 글
제네릭 프로그래밍 (0) | 2022.05.20 |
---|---|
Wrapper 클래스 (0) | 2022.05.20 |
String 클래스 (0) | 2022.05.20 |
equals()와 hashcode() (0) | 2022.05.20 |
JVM (0) | 2022.05.20 |