티스토리 뷰
자료형 = 자료를 담을 수 있는 일정한 형식
종류
- 정수형 타입
데이터량 | 부호 O | 부호X |
8bit = 2의 8제곱 | sbyte | byte |
16bit = 2의 16제곱 | short | ushort |
32bit = 2의 32제곱 | int | uint |
64bit = 2의 64제곱 | long | uling |
static void Main(string[] args){
byte number = 200;
Console.WriteLine(number); // 출력 값 200
}
static void Main(string[] args){
byte number = 300; // 오류 발생
Console.WriteLine(number);
}
Q. 왜 굳이 정수자료형 안에서 구분을 할까?? 복잡하게스리..
A. 구분하는 이유는 데이터 저장공간의 효율성을 위해 (파리 한마리 잡으려고 화염방사기를 쓸 수는 없잖아?)
- 실수형
데이터량 | 이름 | 표현방법 | 특징 |
4byte = 4*8bit | float | 1f, 2f ... | 빠른 연산처리 |
8byte = 8*8bit | double | 1d, 2d ... | 보다 정밀한 연산처리 |
16byte = 16*8bit | decimal | 1m, 2m ... | 겁나 정확 (오차가 허용되지 않는 업무시 사용) |
예제) 1/3을 각 실수형으로 계산시 결과 값
static void Main(string[] args){
float number = 1f / 3f;
Console.WriteLine("{0:F20}", number);
}
// 출력 값 = 0.33333334326744079590
static void Main(string[] args){
double number = 1d / 3d;
Console.WriteLine("{0:F20}", number);
}
// 출력 값 = 0.33333333333333331483
static void Main(string[] args){
decimal number = 1m / 3m;
Console.WriteLine("{0:F20}", number);
}
// 출력 값 = 0.33333333333333333333
※ 참고 = 실수형 계산시 정확한 숫자형을 맞춰주지 않으면 결과값이 달라짐
decimal number_int = 1 / 3; // 0.00000000000000000000
decimal number_float = 1f / 3f; 오류발생!
decimal number_doble = 1d / 3d; 오류발생!
decimal number_decimal = 1m / 3m; // 0.33333333333333333333
double number_int = 1f / 3f; // 0.00000000000000000000
double number_float = 1f / 3f; // 0.33333334326744079590
double number_doble = 1d / 3d; // 0.33333333333333331483
이러한 결과가 나타나는 이유는 형변환!!
형변환이란, 자료형이 변하는 것. 종류는 아래와 같이 두 가지가 존재한다.
암시적 형변환
- 의미 = 자료형 변환을 위해 별도의 형변환 작업이 필요 없는 것
- 언제 = 형변환을 위해 재계산이 필요 없는 경우
명시적 형변환
- 의미 = 자료형 변환을 위해 별도의 형변환 작업이 필요한 것
- 언제 = 형변환을 위해 재계산이 필요한 경우
- 예시
- 큰 용량의 데이터형식이 작은 용량의 데이형식으로 변환 될 때
- 서로 다른 범주의 데이터 형식인 경우
위의 예시를 바꿔보자 (오류발생 = 명시적 형변환이 필요하다는 것!)
decimal number_int = 1 / 3;// 0.00000000000000000000 = 암시적 형변환
decimal number_float = (decimal)(1f / 3f);// 0.33333330000000000000 = 명시적 형변환
decimal number_doble = (decimal)(1d / 3d);// 0.33333330000000000000 = 명시적 형변환
decimal number_decimal = 1m / 3m;// 0.33333333333333333333 = 암시적 형변환
double number_int = 1f / 3f;// 0.00000000000000000000 = 암시적 형변환
double number_float = 1f / 3f;// 0.33333334326744079590 = 암시적 형변환
double number_doble = 1d / 3d;// 0.33333333333333331483 = 암시적 형변환
- 문자형 = 사칙연산 X
이름 | 설명 | 예시 | 특징 |
char | 유코드 16bit 문자 | 사진참조 | 사칙연산 불가능/ ' ' 사용 |
string | 유니코드 문자열 | '+'로 연결 가능/ " " 사용 |
이스케이프 시퀀스
- 의미 = 단순 문자가 아닌 "기능"을 가진 문자열
- 자주 사용되는 이스케이프 시퀀스
1. "\t" = Tab 기능
2. "\n" = Enter 기능 (새로운 행)
3. "\b" = 백스페이스 기능 (한글의 경우 잘 작동 안함)
string sequnces = $"짱짱맨은\t 밥을먹으러\n집에\b갔다 abc\bde";
Console.WriteLine(sequnces);
//--출력값--
짱짱맨은 밥을먹으러
집 갔다 abde
- 순수하게'\'를 문자열로 출력하고 싶은 경우
1. "\\"
2. $"\" , @"\"
string text1 = @"\t\t야호 야호\\";
string text2 = $"\t\t야호 야호\\";
//--출력값--
\t\t야호 야호\\
야호 야호\
- Boolean 자료형 = true, false
- 언제 사용? = 주로 if, while문 과 같은 조건문과 같이 사용
- 자료형을 반드시 선언해야 할까?
- 그건 언어마다 차이가 있음
- 동적 타입의 언어의 경우 (ex Python) 자료형을 선언하지 않아도 된다
- 자료형을 굳이 선언하는 이유는 메모리의 효율성을 늘리기 위해서다.
오늘의 깨달음
사람이 귀찮을 수록 컴퓨터가 편함 (메모리 효율성 높아짐)
사람이 편할 수록 컴퓨터가 힘듬 (메모리 효율성 나빠짐)
참고)
솔루션 = 여러 프로젝트가 담긴 컨테이너
프로젝트 = 기본적인 작업 단위
728x90
'IT > UNITY(C#)' 카테고리의 다른 글
[Unity] 게임플레이 화면에서 갑자기 줌인 되는 경우 (0) | 2022.07.14 |
---|---|
Unity_간단한 UI만들기_소지금, 상태바, HP, MP (TextMeshPro - Text, Slider 이용하기) (0) | 2022.07.13 |
(C#) UNITY_에니메이션 띄우기 (0) | 2020.02.16 |
(C#) UNITY_ UI위에 있을때 인식하기 (UI클릭시 다른 함수 작동을 막는 방법) (0) | 2020.02.14 |
(C#) UNITY_패널 만들기/끄기/캐릭터 구매 (0) | 2020.02.14 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 강화학습
- json
- 가격데이터
- 심리학
- requests
- 스타트업
- 비전공자
- 머신러닝
- C#
- beautifulsoup
- 터틀트레이딩
- 유니티
- 경영학
- 시스템투자
- 일자별
- 주식투자
- It
- 랜덤맵
- 프로그래머스
- 파이썬
- 주식
- Anet
- 크롤링
- ET5X
- PYTHON
- Unity
- 사진크롤링
- 알고리즘
- 마케팅
- IT기초
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
250x250