05
21

1) 닷넷 프레임워크(.NET Framework)

마이크로소프트에서 개발한 윈도우 프로그램 개발 및 실행 환경이며 프로세스 가상 머신에 속한다.

윈도우와 닷넷 프레임워크

 

2) 기본 자료형

자료형(Data Type)은 프로그램에서 데이터를 담을 수 있는 일정한 형식이다.

 

2.1) 정수형 기본 타입

자료형 형식 범위 크기
sbyte System.Sbyte   -128 ~ 127 부호 있는 8bit 정수
byte System.Byte   0 ~ 255 부호 없는 8bit 정수
short System.Int16   -32,768 ~ 32,767 부호 있는 16bit 정수
ushort System.UInt16   0 ~ 65,535 부호 없는 16bit 정수
int System.Int32   -2,147,483,648 ~ 2,147,483,647 부호 있는 32bit 정수
uint System.UInt32   0 ~ 4,294,967,295 부호 없는 32bit 정수
long System.Int64   -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 부호 있는 64bit 정수
ulong System.UInt64   0 ~ 18,446,744,073,709,551,615 부호 없는 64bit 정수

ex)

Static void Main(string[] args)
{
	
    int n1 = 50; // 변수 선언과 동시에 값을 부여
    int n2; // 변수 선언
    n2 = 100; // 값을 부여
    
    long sum = n1 + n2; // 변수 n1와 n2를 더한 값을 저장
    
    Console.WriteLine(sum); // 출력 결과 150
    
    n1 = 200; // 변수 n1에 200을 넣음
    Console.WriteLine(n1); // 출력 결과 200
    
}

 

예제 실행 화면

cf. 컴퓨터의 음수 표현법

① 부호 크기 체계(singned magnitude, sing and magnitude system)

· 최상위 비트(Most Significant Bit)를 부호 표기를 위해 남겨두는 방식

· 첫번째첫 번째 비트 : 부호 비트(보통 가장 왼쪽 첫 번째 비트, MSB)

   '1' → 음수, '0' → 양수

· 나머지 비트들 : 절대값 크기(magnitude)

  표시범위 : -2n-1 ~ 2n-1

ex) 8bit 자료의 경우 +1은 0000 0001, -1은 1000 0001로 표현

· +0, -0이라는 두 개의 0이 존재하며 양수와 음수 간의 연산이 어려운 단점이 존재

 

② 보수 체계(complement number system, two's complement)

· 보수를 취하여 음수를 표현함

· 1의 보수(One's Complement)

 단지 1을 0으로, 0을 1로 바꾸면 됨

 ex) +7(10진법), 0111(2진법), 1000(1의 보수)  

 표시범위 : -2n-1 ~ 2n-1

· 2의 보수(Two's Complement)

 1의 보수(전체 비트의 반전)의 최하위자리(LSB)에 1을 더한 수와 같음

 ex) +7(10진법), 0111(2진법), 1001(2의 보수)

 표시범위 : -2n-1 ~ 2n-1-1

 

cf. 대입 연산자 =

· L-Value = R-Value는 왼쪽 피연산자(L-Value)에 오른쪽 피연산자(R-Value)를 넣겠다는 의미이다.

· L-Value는 변수만 사용 가능하며 R-Value는 변수와 상수를 사용할 수 있다.

ex) 30 = 100; → L-Value 에러

 

2.2) 실수형 기본 타입

자료형 형식 근사 범위 크기
float System.Single ±1.5e-45 ~ ±3.4e38 4바이트
double System.Double   ±5.0e-324 ~ ±1.7e308 8바이트
decimal System.Deciimal ±1.0 × 10-28  ±7.9 × 1028 16바이트

소수점이 있는 숫자 뒤에 f나 d, m을 붙이지 않으면 해당 숫자는 double타입으로 인식된다.

Console.WriteLine((3.14).GetType());

 

소스 실행 화면

float에 아무 접미어(suffix)가 없는 숫자를 넘기면 컴파일 에러가 발생한다.

 

해당 에러코드

따라서 float형식의 값은 숫자 값 다음에 f를 붙이고, decimal는 소수점을 포함하는 경우 m을 붙여 형식을 나타내야 한다.

 

ex)

float f = 5.2f;
double d = 10.5;
decimal money = 200.099m;

Console.WriteLine(f);
Console.WriteLine(d);
Console.WriteLine(money);

 

예제 실행 화면

2.3) 문자형 기본 타입

자료형 형식 범위 크기
char System.Char   U+0000 ~ U+FFFF 유니코드 16bit 문자
string System.String   문자열 유니코드 문자열

cf. 확장 아스키코드(American National Standard Institute)

아스키코드에는 숫자와 영문만 넣을 수 있는 한계가 있다. 따라서 ASCII에서 1bit를 추가하여 ANSI의 앞 7bit는 ASCII와 동일하고, 뒤에 1bit를 이용하여 다른 언어를 표현한다. 영어 외의 언어를 사용할 경우 ANSI는 Code Page를 동일하게 맞춰야 한다. Code Page가 다를 경우 의도와 다른 결과가 나올 수 있다.

ANSI = ASCII(7bit) + CodePage(1bit)

 

ex)

char ch = 'A';
Console.WriteLine(ch);

char ch1 = '\t';
char ch2 = 'T';
char ch3 = '\n';
char ch4 = 'O';

Console.Write(ch1);
Console.Write(ch2);
Console.Write(ch3);
Console.WriteLine(ch4);

 

예제 실행 화면

ex)

char ch = '\u2023';
Console.WriteLine(ch);

char ch1 = '\\';
Console.WriteLine(ch1);

string text = "Hello World";
Console.WriteLine(text);

string text1 = "\tHello\nWorld";
Console.WriteLine(text1);

string text2 = "\"Hello World\"";
Console.WriteLine(text2);

string text3 = @"\tHello\nWorld";
Console.WriteLine(text3);

string text4 = "Hello";
Console.WriteLine(text4 + " " + "World");

 

예제 실행 화면

· 윈도우의 명령 프롬프트는 유니코드 문자를 출력할 수 있는 폰트가 없기 때문에 '?'(물음표)가 출력되었다.

· '\'를 출력하기 위해서는 두 개의 역슬래시 문자를 입력하면 된다.

· @문자를 문자열 앞에 붙이면 내부에 있는 역슬래시를 이스케이프 시퀀스로 간주하지 않고 순수하게 문자로 취급한다.

· string은 '+' 연산을 지원하며 이 연산자를 이용해 문자열을 연결할 수 있다.

 

cf. 이스케이프 시퀀스(escape sequence)

역 슬래쉬 뒤에 올 수 있는 문자나 숫자 조합

COMMENT