프로그래밍개론

프로그래밍 독학 첫걸음 03. 자료형

피향 2020. 2. 24. 22:53

 

 

 

 

안녕하세요 피향입니다.

오늘은 변수의 형식을 정해주는 자료형에 대하여 알아보는 시간입니다.

 

 

 

01. 자료형이란 무엇일까요?

 

 

자료형이란? 변수에 어떤 값을 저장할 것인데 그 값이 어떤 형태인지 정해준 것을 말합니다.

 

예를 들어서 변수 age라는 것을 만들었는데, 이 변수에 사용자의 나이를 저장할 것입니다.

그렇게 되면, 나이는 소숫점이 없는 정수이므로 정수형 이라는 자료형을 지정해줘야 겠지요.

그렇게 되면 C언어 기준 다음과 같이 쓰게 됩니다.

int age;

영어에서 정수를 integer라고 표현하기 때문에 그 앞글자를 따서 int라고 합니다.

실제 코딩하는 화면에서는 아래와 같이 쓰인답니다.

 

return을 제외한 파란 글씨는 모두 자료형

 

 

 

 

02. 자료형에 따라 변수의 크기가 달라진다?

 

우리는 전편에서 변수를 얘기할 때, 일정량의 공간에 어떤 데이터를 저장한다고 말했었습니다.

이 자료형을 정해주는 이유 중에 하나는 변수에 들어가는 데이터의 형식을 지정해준다는 것도 있으나, 

그 형식을 표현하기 위한 데이터의 크기를 지정하는 데에도 기여를 하게 됩니다.

 

1번 예시

예를 들어서 정수형의 경우에는 62와 같이 정수 부분만 저장하면 되지만

62.725같은 소수의 경우, 소숫점 뒤의 숫자도 더 저장해야 하기 때문에 아무래도 그 용량이 더 크게 필요하겠죠?

 

2번 예시

컴퓨터들은 0과 1을 사용한다고 하였습니다. 그렇기 때문에 어떤 값을 저장할 때에는 이진수로 저장을 하게 됩니다.

한 글자당 1bit의 용량을 차지한다고 했을 때, 4를 저장하려면 이진수로 100 즉 4bit를 사용하게 되겠죠?

하지만 4000이라는 값을 저장하려면요? 1111 1010 0000 이라는 12bit를 사용하게 됩니다.

만약 은행이라면? 몇억, 몇조의 금액을 저장해야 하기 때문에 용량이 크게 필요하겠죠?

하지만 그 은행의 천문학적인 숫자를 고려하여 정수를 저장할 때 언제나 용량을 크게 잡아버리면 용량 낭비가 크게 됩니다.

그래서 쓰는 숫자의 범위에 따라서 크기가 작은 것, 크기가 큰 것 이렇게 자료형을 따로 만들어서 관리를 하게 되는데 이러한 경우도 있다는 것을 알고 계셔야 합니다.

 

 

 

 

03. 숫자를 표기할 때 음수는 어떻게 표기할까?

 

일단 이 부분을 알고 있어야, 자료형에 대해서 좀 더 쉽게 이해할 수 있기 때문에 내용을 진행합니다.

일단 우리가 1byte의 공간을 가지게 되는 정수형 변수를 만들었다고 합시다.(자료형=정수형)

그럼 아와 같이 8bit(1byte=8bit). 총 8칸의 숫자를 넣을 수 있는 칸을 배정받게 됩니다.

 

자 그러면 우리가 숫자 1을 저장한다고 생각합시다. 그러면 아래와 같습니다.

 

우리는 총 8칸을 모두 이용하여 0000 0001이라는 결론을 얻게 됩니다.

하지만 -1은요? -1은 - 부호가 붙기 전에서 보수화라는 작업을 거치게 됩니다.

이 보수화 작업을 거치게 되면 가장 큰 자릿수. 즉 맨 왼쪽이 1로 바뀌게 됩니다.

 

-1을 이진수로 표현하면 아래와 같습니다

-1의 이진수 표현

 

즉,  맨 왼쪽은 음수임을 알리기 위해서 1로 고정시켜야 하므로 총 오른쪽의 7칸만 숫자를 표현하는데 사용할 수 있다

라는 결론이 나오게 됩니다.

근데, 또 음수만 맨 왼쪽을 사용하게 되면... 양수 255를 나타내는 1111 1111은요? 

컴퓨터가 음수로 알아들을 수 있기 때문에 만약, 부호를 구별하려면 맨 왼쪽은 0이면 양수, 1이면 음수를 나타내는 고정값으로 인식하게 됩니다. 

 

즉, 숫자는 총 7칸을 사용할 수 있게 되어 양수 쪽으로는 0~127까지, 음수로는 -1~-128까지 사용이 가능하게 되는 것이죠.

 

후 어렵죠? 

우리는 맨 왼쪽 칸을 부호를 나타내는 값으로 하여 양수와 음수를 나눠 표현하겠다 하면 signed라고 하며,

부호를 나타낼 필요 없이 0과 양수만을 사용할 거니, 맨 왼쪽도 숫자를 나타내는데 쓰겠다 하면 unsigned 라고 합니다.

 

 

이는 다음 4편에서 자료형의 종류에 대해서 공부할 때 꼭 알고 계셔야 하는 내용이니 꼭 숙지하고 넘어가주시기 바랍니다.