pccp 준비를 하다가 문득 1 비트와 1 바이트의 차이가 궁금해졌다.
이를 알기 위해선 컴퓨터와 인간 언어의 차이를 알아야 한다.
인간은 알파벳이나 한글로 글을 작성해서 소통한다. 근데 컴퓨터는 그저 전자 스위치로 구성된 전기 장치라 이 스위치를 키고 끔에 따라 모든 것을 실행하고 사용한다.
1 = 참, 전원 켜진 상태!
0 = 거짓, 전원 꺼진 상태!
비트는 2진수 = 즉, 0과 1의 값을 가진다.
그래서 1 bit는 알았다! 컴퓨터에 발생하는 전기적 신호의 단위!
근데 byte는 뭘까?
바이트는 8개 단위의 비트를 하나의 그룹으로 묶어 쓰는 것을 말한다. 8bit = 1byte이다.
1바이트는 8개의 참/거짓 상태를 조합해 나타낼 수 있는 수는 총 256개가 되기 때문에 1바이트는 0부터 255까지의 값을 조합으로 가지고 표현해낼 수 있다!
바이트는 주소 지정이 가능한 단일 저장소고, 아스키 코드같은 데이터 문자를 표현하기도 한다.
그럼 여기서 추가적으로, 기본 자료형과 참조 자료형의 차이를 살펴보자.
기본 자료형이란 실제 데이터 값을 저장하는 자료형이다. 정수, 실수, 논리 타입으로 분류된다. 각각 저장 크기가 다르고 기본값이 정해져 있다.
참조 자료형이란 데이터가 저장되어 있는 메모리 번지를 저장한다.
내 기억상으로는 메모리라는 영역이 있고, 거기에 하위 요소로 스택, 힙 메모리가 존재한다. 기본 자료형은 스택 영역에 저장이 된다. 참조 자료형은 힙 메모리에 저장된 주소값을 참조해서 저장한다고 하여 참조 자료형이다.
참조 자료형의 대표적 형태로 배열, 클래스, 인터페이스가 있다.
내가 헷갈렸던 점은 만약 기본 자료형 중 char 형이 유니코드를 참조하는 거라면, 참조 자료형 아닌가? 하는 생각이 들어서였다. 하지만 참조 자료형은 스택 메모리에서 주소값을 참조하는 것이라 아예 저장 영역 자체가 다르니 결국 틀린 설명이었다. 
여기서 또 헷갈릴 수 있는 부분은 char형은 기본 자료형이지만 string형은 참조 자료형이라는 것이다. 이는 문자형과 문자열의 차이 때문이다.
문자형은 그냥 하나의 알파벳이나 문자숫자를 숫자와 매핑하여 그 값을 저장하는 것이다. 그래서 int number = A;를 출력하면 65가 나온다. 문자열은 하지만 하나의 숫자로 매핑할 수 없다. 힙 영역에 값을 저장한 다음, 주소값을 참조하여 저장한다.