데이터 타입과 기본 타입
메모리에는 0과 1뿐인데, 숫자인지 글자인지 어떻게 알까?
화면을 누르면 다음 장으로 넘어갑니다
같은 칸, 다른 뜻
타입이 읽는 법을 정합니다
메모리 칸에 든 것은 0과 1의 나열뿐입니다. 같은 나열을 정수로 읽으면 65이고 문자로 읽으면 A입니다. 어떻게 읽을지를 정해 주는 것이 타입입니다.
예시입니다. 0 또는 1 하나를 비트(bit)라고 합니다. 1강에서는 타입을 값의 종류라고 했습니다.
데이터 타입
값의 모음에 연산까지
데이터 타입(data type)은 값들의 모음과, 그 값에 쓸 수 있게 미리 정해 둔 연산들을 합친 것입니다. 무엇을 담는지와 함께 무엇을 할 수 있는지도 정합니다.
두 타입의 값과 연산은 예시입니다.
기본 데이터 타입
더 쪼개지지 않는 벽돌
다른 타입으로 정의되지 않는 타입이 기본 데이터 타입(primitive data type)입니다. 대부분의 명령형 언어는 수, 문자, 불리언을 기본 타입으로 둡니다. 다른 타입은 이것들을 모아 만듭니다.
불리언(Boolean)은 참과 거짓 두 값뿐인 타입입니다. 명령형 언어는 1강에서 본, 변수와 대입문이 중심인 언어입니다.
정수
하드웨어를 그대로 따릅니다
정수(integer) 타입은 하드웨어가 수를 담는 방식을 거의 그대로 따릅니다. 그래서 언어가 따로 해 줄 일이 적습니다. 자바에는 크기가 다른 부호 있는 정수 타입이 넷 있습니다.
부호 있는 정수는 음수도 담는 정수입니다. 정수 타입이 여덟 가지나 되는 언어도 있습니다. 막대는 크기의 순서만 보여 줍니다.
부동소수점
실수는 가까운 값으로 담깁니다
부동소수점(floating point) 타입은 소수점이 있는 수를 담습니다. 칸의 크기가 정해져 있어 담을 수 있는 값이 띄엄띄엄합니다. 그 사이의 값은 가장 가까운 값으로 바뀌어 담깁니다.
그래서 부동소수점 수는 정확한 값이 아니라 근삿값입니다. 눈금의 간격은 예시입니다.
IEEE 754
비트를 세 구역으로 나눕니다
지금 널리 쓰는 표준이 IEEE 754입니다. 비트를 부호(양수인지 음수인지), 지수부(대략 소수점의 자리), 소수부(숫자 자체)로 나눕니다. 32비트 형식은 1 + 8 + 23비트, 64비트 형식은 1 + 11 + 52비트입니다.
과학 계산용 언어는 이런 타입을 둘 이상 둡니다. 흔히 float와 double입니다. 폭은 실제 비율이 아닙니다.
다음 편