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)
역 슬래쉬 뒤에 올 수 있는 문자나 숫자 조합
'스마트팩토리 > C#' 카테고리의 다른 글
6. 객체지향, 구조체, foreach, 배열 (0) | 2020.05.27 |
---|---|
5. 복합 대입 연산자, 반복문, 점프문, 메서드 (0) | 2020.05.26 |
4. if문, 연산자, switch문 (0) | 2020.05.25 |
3. 진법, 불린형 기본타입, 형변환, 기본 문법 요소 (0) | 2020.05.23 |
1. Visual Studio 설치 및 실행 (0) | 2020.05.20 |