2024. 12. 20. 23:35ㆍ컴퓨터 언어/c#
종강 한지는 일주일 되었지만 이제 공부시작한다. 참 게으른 인간이다. 아무튼 오늘 c# 자료형에 대해 공부 했다. 먼저 변수를 선언 하는 방법은 c와 동일했다.
자료형 변수이름 ; 이런식 으로 동일하다. 숫자를 초기화 하는 방법도 동일했다. 자료형 변수이름 = 숫자; 이런 식이다.
그럼 어떤 자료형이 있느냐 하면
int, float, string, bool 등등이 있다 더 많은 자료형이 있지만 일단 이 4가지면 충분하다. 처음부터 각각 정수형(ex.-1,0,1,)
그리고 실수형(ex.3.14), 문자열 (말 그대로 문자를 저장한다), 불리언(참과 거짓 즉 1과0만을 가진다) 이 있다. 변수와 각각의 자료형에 대해 공부를 하겠다.
변수
하나의 상자라고 생각하면 된다. 변수를 선언 할 때 우리는 어떤 크기의 바구니 그리고 그 바구니의 이름을 정해주는 것이다. (정확히 말하면 메모리 공간을 할당받는것이다. 이 공간에 값이 저장되는 것이고 이 공간에 주소가 존재한다.) 그럼 우리 컴퓨터 부품 램 어딘가에 이 값이 저장될 것이다. 우리가 이 값을 사용할 때에는 이 바구니의 안의 값을 복사해서 사용한다. 변수를 저장하면 이 데이터를 저장하고 있는 메모리의 주소 값이라는게 있는데 메모리의 시작 주소를 의미한다. C에서는 포인터를 다룰 때 공부했었는데 여기서는 어떤지 모르겠다. 참고로 변수를 선언하고 아무런 값을 입력하지 않아도 그 주소가 비어있는 것은 아니다. 0으로 초기화 해주지 않으면 쓰레기 값이 들어있다. (나중에 알았는데 c#은 자동으로 0으로 초기화 시켜준다)
INT
선언 방식은 앞서 말했듯이 INT NUM; 이런식이다 안에 숫자를 넣고 싶다면 입력을 받거나 선언할때 초기화를 시켜주면 된다. 마이크로소프트 사이트에서 확인 해보니 c#은 일반적인 int형의 경우 부호 있는 32비트 정수의 크기라고 한다 이게 무슨 말인가 하면 -2의 31승 부터 2의 31승 -1 의 범위를 가진다 풀어쓰면 -2,147,483,648 ~ 2,147,483,647 이 숫자다 여기서 알 수 있듯이 n비트는 2의 n제곱을 말한다. 여기서 더 나가면 1바이트는 8비트이고 이진법 어쩌고 저쩌고 그런데 여기까지 하겠다. 만약 저 범위보다 더 큰 숫자가 필요하면 long int 이런게 있는데 필요하면 그때 찾아서 쓰자 나도 아직 잘 모른다. 정수형의 숫자를 사용 할 때 우리는 보통 10진법을 사용한다. 우리가 일상 생활에서 2진법 16진법을 사용하지는 않지 않는가? 인도 수학자도 그러지는 않을거다. 하지만 컴퓨터는 2진법이 더 편한 친구이다. 전기 신호로 작동하기 때문일것이다.
그래서 우리가 10진법으로 데이터를 저장해도 실제로 10진법으로 저장 되는 것이 아니다. 컴퓨터는 2진법을 이용해 값을 처리한다고 보면 될 것이다.
float
부동 소수점 즉 실수를 저장 할 수 있다. 선언 방식은 이제 안 말해도 알 것이다. 그런데 float은 한가지 다른 점이 있다.
float pi = 3.14; 라고 쓰고 싶은데 여기서 f를 붙어야 한다. float pi = 3.14f; 이런 식으로 말이다. 그래야 float 타입으로 인식을 한다. 그리고 float형은 정확한 값을 저장하는 것이 아니라 근사치로 표현하고 저장한다. 꼭 기억하고 있어야 한다. 왜 근사치로 저장하느냐 하면은 소수는 무한정으로 숫자가 늘어날 수 있다. 하지만 지정된 메모리 공간은 유한하기 때문에 근사치로 저장하는 것이다. 그래서 정확한 계산을 요구한다면 double형 이라는 것을 사용하는 것이 좋다. float형은 소수점 이하 7자리 정도의 정밀도를 가지지만 double형은 더 많은 메모리를 요구하는 대신에 소수점 이하 16자리 정도의 정밀도를 가진다. 위의 특성을 모르고 사용한다면 나중에 온갖 버그로 고통받을 수 있다.
string
문자열을 표현하는데 사용한다. 문자열은 말 그대로 문자가 나열된 데이터를 말한다. 사용방식은 string name = "Yes";
이런 식이다. 저장하고 싶은 문자열을 큰따옴표 안에 써주면 된다. 한글도 가능하다. 비슷한 친구로 char 라는 친구가 있는데 이 친구는 딱 하나의 문자만 저장 가능하다. 작은따옴표 안에 저장하고 싶은 문자를 써주면 된다. 어떻게 컴퓨터가 문자를 저장하는지 궁금하다면 아스키 코드 라는 것을 찾아보면 이해 할 수 있을 것이다. 문자열은 문자열 길이에 맞게 메모리 공간을 할당받아 사용한다.
bool
이 친구는 두가지 값 만을 가질 수 있다. 참과 거짓 즉 1과 0이다. 이 친구가 왜 필요한가 생각하면 나중에 if문 같은 친구들을 공부할때 크게 중요해진다. 지금은 프로그램의 흐름을 제어할 수 있는 친구라고 알아두기만 하면 괜찮다.
여기까지 4가지 자료형과 변수에 대해서 알아봤다. 아직 크게 어려운 점은 없다. 그리고 글을 쓰고 읽으면서 느꼈는데 너무 두서가 없다. 또 가독성도 떨어지는 것 같고 쓰면서 느낀건데 나름 설명하는 듯한 글을 쓰고 싶은데 나도 잘 몰라서 계속 찾아보고 잘 몰라서 대충 설명하게 되는 것 같다. 공부 할 때 좀 더 자세히 파고들어서 공부하는 자세가 필요할 듯 하다. 마지막으로 실습한거 하나 올리고 글을 마치겠다. 실습은 각 데이터형을 선언하고 값을 초기화 하고 출력 한 것이다.
using System;
namespace CSharp
{
class Program
{
static void Main(string[] args)
{
int num = 100;
float pi = 3.14f;
string str = "Hello World!";
bool on_off = false;
Console.WriteLine(num);
Console.WriteLine(pi);
Console.WriteLine(str);
Console.WriteLine(on_off);
}
}
}
'컴퓨터 언어 > c#' 카테고리의 다른 글
비교 연산과 논리 연산 (0) | 2025.01.01 |
---|---|
산술 연산 (1) | 2024.12.27 |
c# 데이터 다루기 (1) | 2024.12.24 |