안녕...
오늘은 4일차지...
하지만 4일차 진도를 나가지 않고
3일차에서 배웠던 자료형과 변수에대해서
더 자세하게 공부해볼께
--------------------------------------------------------------------------------
Day3 -변수와 자료형 이해하기 2-
어제 배웠듯이
자료형에는 종류가 여러가지 있다고했지...
대표적으로는 정수형,실수형, 문자형이 있다고 했어
어제는 각 형별로 대표적인 자료형 한가지씩만 알아봤는데
오늘은 전체적으로 한변 살펴보려고해..
정수형
(Win32운영체제 기준)
위에 표에 있는게 기본적인 정수형 자료형들이야.
각 자료형에보면 범위가 있지?
이 범위가 해당 자료형이 가질 수있는 수의 범위야..
int형을 보면 -2147483648 ~ 2147483647이지..
대충 -21억 부터 21억 까지의 수가 저장가능한 범위야..
엄청나지? 고작 4바이트 먹는데 엄청난 수를 표현할수있다는거지...
저 범위가 어떻게 산정됬는지 보면
1bit는 0 또는 1을 표현할수있고.
1byte는 총 8bit로 이루어져 있어.
그러면 1byte로 표혀할수 있는 정수의 수는??
1byte중에서 맨 앞에있는 1bit는 부호를 나타내기 위한 용도로 사용되고
(부호를 나타내는 bit를 부호비트라고하고 부호bit가 0이면 +, 1이면 -)
나머지 7bit로 수를 표현할수있는데..
7bit로 표형할수있는 최대 정수값이 127(01111111(2))이 돼.
2진수에대해서 잘 모르는 형들은 수학책을 펴고 공부를 하고 오세요.
마찬가지로 총 4바이트짜리인 int형은 총 32개의 bit중에서 맨처음bit는 부호를 위해 사용되고
나머지 31bit로 수를 표현하게 되지... 그래서 계산해보면 대충 21억이라는 범위가 나오는거야..
또 unsinged형이 있는데 이건 부호비트를 사용하지 않겠다는거야..
즉 부호비트를 숫자를 표현하는데 사용한다는거지..
그럼 표현할수있는 수의 범위가 증가하는 대신.. -부호는 표현할 수 없지.
그리고 long형이랑 int형이랑 똑같다나는걸 느낀 형들도 있을꺼야..
차이가 뭐냐면 long형은 항상 4바이트로 크기가 고정되있는 반면에
int형은 해당 플랫폼에 따라 변할수도있다는거야..
예전에 16bit운영체제에서는 int가 2바이트를 차지했고,
지금 32bit운영체제에서는 4바이트가 되었어..
그리고 64bit운영체제에서는 8바이트가 되겠지..
왜 그런지는 아직 나도 명확하게 설명해줄수가 없네..
뭐 검색해보니 이런저런 이야기가 있던데 더 알아보고 알려줄께..
암튼 그렇데...
실수형
실수형도 위와 같은 표를 보면 여러가지가 있지..
실수형도 범위를 산정하는 공식같은게 있는데..
복잡한 이야기이기 때문에 나중에 따로 설명해줄께.
잘 고려하면서 사용하길 바래..
문자형
문자형은
1바이트지..
그냥 1바이트짜리 정수형 변수라고 생각해..
하지만 용도는 문자를 표현할때 쓰는거고..
정수를 담는데 사용해도 문제는 없지만, 용도라는걸 괜히 정해 놓은게 아니니까
알맞게 맞춰쓰도록 해.. 괜히 3바이트 아낄려고 정수형 쓸 곳에다 char써놓고
싸닥션 시전받지말고..(아 물론 예외의 경우는 있을 꺼야)
그냥 대충 상황에 맞게 알아서 잘 쓰길 바래...
그럼 궁금해지는게 어떻게 문자가 담기는 걸까?
그때 쓰는게 바로 아스키코드 라고 하는건데
한번쯤은 들어봤을꺼라고 생각해..
위에 있는게 아스키 코드표인데
각각 번호에따라서 대응되는 문자들이 있지?
만약
char ch = \'a\';
라고 했다면 문자\'a\'는 아스키코드값으로 97이고
변수 ch에는 97이 담기게 돼...
이제 대충 감이오지??
--------------------------------------------------------------------------------
상수라는 것도있는데
상수라는건 잘 알지?
사전에서 찾아보면
"변수(變數)에 대하여 항상 일정한 값을 취하는 양(量)이다. "
이렇게 나오는데 말그대로야.. 항상 일정한 값을 가진다..
즉, 변수는 변할수있지만 상수는 절대 변하지 않는다는거지..
int a = 1; 에서 .. 1이 바로 상수야...
a는 값이 변할수 있는 반면에.. 1은 변할 수 없지...
프로그래밍에서는 상수도 변수와 마찬가지로 데이터를 저장하는 공간이기도 한데..
바꿀수 있다 없다 차이가있는..그건 나중에 상수 부분에서 더 자세히 알아보자..
--------------------------------------------------------------------------------
오늘은 길게 쓸라구했는데
오늘 유독 공부에 집중이 안되서..
하루종일 프겔질만하다보니.. 진도가 이것밖에 안나갔네..
다음 시간에는 변수에대해서 아주 깊게 파고들께..
대충
메모리에 대해서, 어떻게 저장되는지, 음수는 어떻게 표현하는지,
2진수에 대해서, 2의 보수법이나, 오버플로우가 발생하는경우,
부정소수점을 저장하는 규칙등.. 아주 더 깊숙히 살펴볼 예정이야..
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.