[C#]03.데이터에 대하여 Part2

안녕하세요 유랑입니다.




지난시간에 이어서 데이터 형식에 대해서 알아보겠습니다.

정수형과 문자형 이외에 어떤것들이 있을지 알아볼게요.

오늘도 화이팅입니다.




1. 데이터 형식




1-1) 논리 형식



C언어와는 다르게 C#에는 논리 형식이 만들어져 있습니다.

논리 형식이란 말 그대로 찬성, 반대를 의미하는 것으로 

1=1은 참, 1=2는 거짓이라고 표현할 수 있겠죠?

다음 코드를 작성 후 알아보겠습니다.








여기서 쓰인 데이터 형식은 bool입니다. true와 false 값을 저장 할 수 있어요.







1-2) Object 형식



정수, 실수, 문자, 논리 형식등을 가지고 있을 수 있는 형식은 없을까요?

C#에서는 Object라는 형식이 있습니다.

Object 형식은 int, long, char, bool 등의 부모라고 생각할 수 있을만큼 다양한 데이터 저장이 가능합니다.

코드를 작성 후 알아보겠습니다.







결과값으로 알 수 있듯이 object 형식은 정수형과 실수형 논리형 문자형 등의 어떤 형태든지 쓸 수 있습니다.






1-3) 데이터 형식 바꾸기



지난 시간에 잠깐 적용하였는데 값을 집어 넣을때 데이터 형식을 변환하여 적용 가능합니다.

각 형식마다 어떻게 변화되는지 알아보겠습니다.








int b = (int)a는 데이터 형식의 크기가 값을 채울 수 있어서 결과값이 똑같지만,

sbyte y = (sbyte)x는 sbyte의 최대값이 127이므로 다시 최소값으로 돌아가 -128이 출력되게 된다.




실수형 형식을 바꿔보겠습니다.






여기서 "=="은 서로 같은지를 비교해 True 혹은 False를 반환합니다.

결과 값이 0.1 => 0.100000001490116으로 바뀐걸 볼 수 있는데, float에서 double로 변환하는 과정에서 

이진수로 변환하여 처리하는데 이때 소수가 완전히 다뤄지지 않기에 결과값이 다르게 나오게 됩니다.

이 점을 유의해서 형식변환 해야만 하겠습니다.





부호가 있고 없고의 차이가 형식 변환에서는 어떻게 나타날까요






음수가 있는 형식(int)에서 음수가 없는 형식(uint)로 바뀌는 과정에서

-30이라는 값은 언더플로우 되어 0부터 다시 최대값으로 차례차례로 넘어가다보니 

다음과 같은 결과값이 나오게 됩니다.






숫자를 문자로, 문자를 숫자로 바꾸는 방법도 있을까요?

다음 코드를 입력 후 알아보겠습니다.






정수나 실수를 문자열로 바꿀때는 ToString, 

문자열을 정수나 실수로 바꿀때는 ToInt32와 float.Parse이 필요합니다.






1-4) 상수



숫자나 문자같이 문자그대로의 값을 가지고 있는 데이터 형식을 상수라고합니다.

변수는 상수로 쓰일 수 없을까요?

코드를 작성 후 알아보겠습니다.







const를 int 앞에 붙이면 MAX_INT와 MIN_INT는 상수로 바뀌게 되요.

즉 MAX_INT = 3; 값을 넣을 수가 없습니다.(값이 바뀌지 않으므로)

추가로 코드를 작성하여 확인해 보세요.







1-5) 열거 형식



여러 개의 상수를 정리하고 싶을때 const 외의 좋은 방법은 없을까요?

enum이라는 열거 형식을 사용하면 가능합니다.

enum 열거 형식명 : 기반자료형{상수1, 상수2, 상수3, ...) 이렇게 쓰일 수 있는데,

게임에서는 캐릭터의 상태를 여기다가 집어 넣을 수 있겠죠?

코드를 작성 후 알아보겠습니다.







해당 형식명의 위치에 따라 0부터 ~ 4까지의 출력값을 보여주게 됩니다.





이번에는 열거형을 result를 초기화 하고 값을 넣어주면 어떻게 변하는지 알아보겠습니다.






변수 result가 DialogResult 형식으로 초기화 된 후 DialogResult.YES의 값이 저장 됐기에,

밑에 값들은 False가 나오는 것이다.






1-6) Nullable 형식



int형이나 short와 같이 형식들은 변수 선언 후 각각 메모리가 할당 됩니다.

그리고 컴파일을 시킬 때 반드시 해당 메모리 안에는 값이 저장이 되어 있어야 합니다.

하지만 코드를 작성하다보면 값을 너주지 않고싶을때가 있죠?

그때 쓰이는게 Nullable형식입니다. 이름 그대로 아무것도 없는걸 뜻하는데,

형태는 다음과 같다. => 데이터형식? 변수이름;

자세한건 예제를 통해 알아보도록 하자.







Nullable 형식으로 만들어진 a는 아무값이 없다는걸 볼 수 있습니다.






3. 마무리




오늘은 여기까지 하겠습니다.

지난시간에 이어서 데이터의 형식과 쓰임새에 대해 알아보았습니다.

다음시간에는 문자열에 대해 자세히 알아보겠습니다.

감사합니다.




수업자료 https://github.com/YouRang12/-Tistory-CShop---Basic


댓글

Designed by JB FACTORY