정수 자료형에 대하여
- 정의
- 소수점이 없는 소수점이 없는 숫자형 데이터를 의미한다.
- C# 에서의 정수형 변수 선언 시 int 또는 long 데이터타입을 선언하여 사용한다.
- C#에서의 정수 자료형의 형식 및 범위
형식 범위 크기
bool | true, false 또는 1,0 | 1 byte |
sbyte | -128 ~ 127 | 부호 있는 8bit ( 1 byte ) 정수 |
byte | 0 ~ 255 | 부호 없는 8bit ( 1 byte ) 정수 |
short | -32,768 ~ 32,767 | 부호 있는 16bit ( 2byte ) 정수 |
ushort | 0 ~ 65,535 2^16 - 1 | 부호 없는 16bit ( 2 byte ) 정수 |
int | -2,147,483,648 ~ 2,147,483,747 | 부호 있는 32bit ( 4 byte ) 정수 |
uint | 0 ~ 4,294,967,295 | 부호 없는 32bit ( 4 byte ) 정수 |
long | –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 부호 있는 64bit ( 8 byte )정수 |
ulong | 0 ~ 18,446,744,073,709,551,615 | 부호 없는 64bit ( 8 byte )정수 |
string | char 형식의 집합에 따라 다름 | 2 byte 유니코드의 집합 |
- 테이블 코멘트
- 부호가 있는가 없는가? : 양수만 표현하는가 : 음수도 표현 가능한가?
- 비트 ⇒ 메모리할당량 ⇒ 8bit ( 2byte )
- sbyte 앞에 붙은 s는 signed 를 의미한다.
- uint, ulong 등 앞에 붙는 u의 뜻은 unsigned 를 의미한다
- 위 자료형들은 Value Type이며 Reference Type은 항상 heap에 위치하지만 Value Type 은 어디에서 생성 되었는지 에 따라 heap, stack 양쪽에 위치할 수 있다.
- 만약 위 자료형을 Main 클래스에서 할당하면 변수의 주소 값에 위치하며 어떠한 클래스안에서 할당하면 class instence 와 함께 heap에 저장된다.
- 각 정수에는 해당 형식의 최소 값을 정의하는 MinValue 속성 과 최대 값을 정의하는 MaxValue 속성이 존재한다.
- 닷넷 프레임워크의 선언형식
sbyte System.Sbyte
byte | System.Byte |
short | System.Int16 |
ushort | System.Uint16 |
int | System.Int32 |
uint | System.Uint32 |
long | System.int64 |
ulong | System.Uint64 |
- C# 에서 uint, Uint16, Uint32, Uint64 간의 차이점
- UInt16
- 16 bit ( 2byte ) 부호 없는 정수이다.
- 메모리에서 16 bit 의 공간을 차지한다.
- UInt32 / uint
- uint 는 UInt32 의 별칭 이므로 uint와 UInt32 와 동일한 유형이다.
- UInt32는 32 bit ( 4byte ) 부호 없는 정수이다.
- 메모리에서 32 bit 의 공간을 차지한다.
- UInt64
- UInt64는 64bit ( 8 byte ) 부호 없는 정수이다.
- UInt64는 메모리에서 64 비트(8 바이트)의 용량을 차지한다.
- UInt16
- bit 별 정수형의 범위
- 16 bit
- 16 bit 환경에서 short int 와 int 의 범위가 동일하다.
형식 MIN VALUE MAX VALUE short int -32,768 32,767 u short int 0 65,535 int -32,768 32,767 uint 0 65,535 long int -2,147,483,648 2,147,483,647 u long int 0 4,294,967,295 - 32 bit
- 32 bit 환경에서 long int 와 int 의 범위가 동일하다.
형식 MIN VALUE MAX VALUE short int -32,768 32,767 u short int 0 65,535 int -2,147,483,648 2,147,483,647 uint 0 4,294,967,295 long int -2,147,483,648 2,147,483,647 u long int 0 4,294,967,295 - 65 bit
형식 MIN VALUE MAX VALUE short int -32,768 32,767 u short int 0 65,535 int -2,147,483,648 2,147,483,647 uint 0 4,294,967,295 long int -9,223,372,036,854,775,808 9,223,372,036,854,775,808 u long int 0 18,446,774,073,709,551,615 - 정수 자료형의 Overflow 에러와 Underflow 에러
- 만약 선언한 정수 자료형의 최대 값 또는 최소 값을 넘게 되면 Overflow 에러 또는 Underflow 에러가 발생한다.
- Overflow 에러는 자료형의 최대 값을 넘어갈 시에 발생하며 이 Overflow 발생 시 자료형의 제일 작은 값으로 넘어간다 Ex) 32,768 ⇒ -32,767
- Underflow 에러는 Overflow와 반대로 가장 큰 값으로 넘어가게 된다 Ex) -32,768 ⇒32,767
문자열에 대하여
- 정의
- 프로그래밍 언어에서 string은 몇 개의 문자들로 구성된 문자열 하나를 값으로 취할 수 있는 변수를 의미한다.
- 요소가 문자 인코딩과 관련된 문자를 대표하는 일련의 자료 값을 저장하고 있는 자료형으로 이해할 수 있다.
- 문자열과 문자
- 문자열 ( strirg ) 은 문자 ( character ) 의 집합체로 문자열 안에 각 문자에 접근하기 위해 [인덱스] 를 사용하여 접근 할 수 있다.
- 하나의 문자는 상응하는 ASCII 코드 값을 가지는데 A = 065, B = 067 등 문자에 상응하는 고유의 값을 가지고 있다.
- 문자열은 불변하다. 문자열 개체를 만든 후 에는 변경 할 수 없다. 문자열을 수정하는 것으로 나타나는 모든 String 메서드는 새로운 문자열 개체를 반환한다.
- C# String 클래스에서 문자열의 선언 및 초기화
생성자 설명
string(char[] str) | 입력한 문자열을 갖는 스트링 객체 생성 |
string(char ch, int n ) | 입력한 문자를 n번 반복하는 스트링 객체 생성 |
string(char[] str, int start, int count | 입력한 문자열의 start 번째 문자를 시작으로 count만큼의 길이를 갖는 스트링 객체 생성 |
논리 자료형 ( boolean ) 에 대하여
- 정의
- bool ( boolean ) 자료형은 논리 자료형 이라고도 하며, 참과 거짓을 나타내는 데 쓰인다, 주로 참은 1, 거짓은 0에 대응하나 언어마다 차이가 있다. 숫자를 쓰지 않고 True 와 False 를 쓰기도 한다.
- 각종 비교연산자를 통하여 참, 거짓인지 판단할 수 있다.
- 다양한 논리 연산자를 통하여 여러 조건을 동시에 검증 할 수 있다.
- 비교 연산자
형식 설명
> | 왼쪽 피연산자가 오른쪽 피연산자 보다 크면 True 를 반환 |
< | 왼쪽 피연산자가 오른쪽 피연산자 보다 작으면 True를 반환 |
>= | 왼쪽 피연산자가 오른쪽 피연산자 보다 크거나 같으면 True를 반환 |
<= | 왼쪽 피연산자가 오른쪽 피연산자 보다 작거나 같으면 True를 반환 |
== | 왼쪽 피연산자와 오른쪽 피연산자가 같으면 True를 반환 |
=! | 왼쪽 피연산자가 오른쪽 피연산자와 다르면 True를 반환 |
- 논리 연산자
논리 연산자 설명
and | 논리식이 모두 참이면 True 반환 ( AND 연산 ) |
or | 논리식 중에 하나라도 참이면 True 반환 ( OR 연산 ) |
xor | 논리식이 서로 다르면 True 반환 ( OR 연산 ) |
&& | 논리식이 모두 참이면 True 반환 ( AND 연산 ) |
! | 논리식이 모두 참이면 False , 거짓이면 True 반환 ( NOT 연산 ) |
- 논리연산자의 진리표 ( Truth Table )
| A | B | A and B ( A && B) | A or B ( A || B ) | A xor B | !A | | --- | --- | --- | --- | --- | --- | | True | True | True | True | false | false | | True | False | False | True | True | True | | False | True | False | True | True | True | | False | False | False | False | False | True |
참고 )
- stack : stack영역은 함수의 호출과 관계되는 지역변수와 매개변수가 저장되는 영역, 스택 영역은 함수와 함께 할당되며 함수의 호출이 완료될 시 소멸
- heap : 사용자가 직접 관리해야 하는 메모리 영역, 사용자에 의해 동적으로 할당되고 해제됨
- 문자 인코딩 : character encoding 또는 text encoding 또는 줄여서 인코딩은 사용자가 입력한 문자나 기호들을 컴퓨터가 이해할 수 있는 신호로 만드는 것을 의미한다.
- bool : bool 과 boolean은 int 와 int32 와 같은 관계이다.
참고 자료 )
https://wikidocs.net/26940 :: C 프로그래밍 : 현대적 접근 / 07 기본형 / 1 정수형
https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/builtin-types/integral-numeric-types :: 정수 숫자 형식(C# 참조)
https://infinitt.tistory.com/295 :: 정수, 실수의 오버플로우, 언더플로우 (overflow , underflow)
https://kukuta.tistory.com/413 :: C# 문자열 ( string ) 가이드
https://learn.microsoft.com/ko-kr/dotnet/csharp/programming-guide/strings/ :: 문자열 및 문자열 리터럴
https://www.csharpstudy.com/CSharp/CSharp-string.aspx :: 예제로 배우는 C# 프로그래밍 : C# 문자열
https://blog.naver.com/sharonichoya :: C 언어 문자열 ( string ) 기본 개념
https://ko.wikipedia.org/wiki/문자열 :: 문자열
https://namu.wiki/w/아스키 코드 :: 아스키코드
https://junghyun100.github.io/힙-스택차이점/ :: 힙 - 스택
https://ko.wikipedia.org/wiki/불리언_자료형 :: boolean 자료형
https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/builtin-types/bool#three-valued-boolean-logic :: bool ( C# 참조 형식 )
'Programming > Cs' 카테고리의 다른 글
반복문 (2) | 2023.11.01 |
---|---|
조건문 (2) | 2023.10.30 |
[Git] 깃허브 명령어 정리 (0) | 2022.09.17 |
[OOP] 추상화 (0) | 2022.05.15 |
[OOP] 다형성 (2) | 2022.05.13 |