02 데이터 다루기

김민영·2023년 1월 2일
0

C# 기초 프로그래밍

목록 보기
2/18

🥾 데이터를 다루는 방법

1. 객체

1) 메모리에 데이터를 저장하려면 주소와 크기를 알아야 함
2) 객체란 데이터가 저장된 영역
3) 객체를 통해 데이터의 저장 및 불러오기를 편리하게 할 수 있음

  • 객체를 선언하면 컴파일러가 알아서 주소를 지정함
  • 메모리의 크기는 객체의 타입에 따라 결정

4) 객체의 선언: 타입 객체의 이름 ;
5) 객체의 초기화

  • 객체를 생성할 때 초기값을 지정하는 것
  • 초기화할 값이 애매할 땐 기본값(default)를 사용할 수 있음

2. 타입 (Type)

: 데이터를 저장하기 위해 사용하는 메모리의 크기, 데이터의 종류를 지정하는 것

▶ 정수

1) byte

  • 1byte의 크기로 정수를 표현
  • 부호가 있는 정수를 저장하고 싶은 경우 sbyte 이용
  • byte를 제외하고는 모두 기본 타입 이름이 부호가 있는 타입

2) short

  • 2byte의 크기로 정수를 표현

3) int

  • 4byte의 크기로 정수를 표현

4) long

  • 8byte의 크기로 정수를 표현

▶ 실수

1) float, double 타입을 주로 사용
2) 지수부와 가수부로 표현해 부동소수점 방식이라고 함

▶ 리터럴

1) 값을 나타내는 문자 자체
2) 리터럴도 알맞은 타입이 있으며, 저장하고자하는 객체의 타입과 일치해야 함



🥾 연산

1. 정수 간의 나눗셈 연산

1) / 연산자 사용
2) 나눗셈을 한 몫을 반환함
→ 13 / 5 를 연산하여 2를 반환

2. 실수 간의 나눗셈 연산

1) 나눗셈 결과를 반환함
2) 피연산자 중 하나는 정수, 하나는 실수일 경우 부동소수점이 더 표현할 수 있는 범위가 넓기 때문에 정수 타입이 실수 타입으로 바뀌어 연산됨
→ 13 / 5.0 을 연산하여 2.6 반환

3. 나머지 연산

1) % 연산자 사용
2) 나눗셈 후 나머지를 반환함
3) 왼쪽 피연산자에 따라 반환되는 값의 부호가 결정됨
→ 5 % 4 == 1
→ -5 % 4 == -1
→ 5 % -4 == 1
→ 이 이유는 a % b = a - (a / b) * b로 연산되기 때문

4. 대입 연산자 ( = )

1) 오른쪽 항을 왼쪽 항에 저장
2) 복합 대입연산자 ( x op= y)

  • x = x op y 와 같음

5. 증감 연산자 ( ++, -- )

1) 피연산자의 값을 1 증가, 감소
2) 전위 증감연산자

  • 피연산자의 앞쪽에 연산자를 표기
  • 먼저 증가, 혹은 감소를 수행한 뒤 구문의 작동을 수행

3) 후위 증감연산자

  • 피연산자의 뒤쪽에 연산자를 표기
  • 구문의 작동을 수행한 후 증가, 혹은 감소됨

6. 비트 연산자

1) not 연산자 ( ~ )
: 이진수를 1의 보수로 변환

2) shift 연산자 ( <<, >> )
: 비트를 가리키는 방향을 향해 옮김

3) &
: 이진수의 각 자리수에 대해 연산, 둘 다 1이어야 1을 반환

4) |
: 이진수의 각 자리수에 대해 연산, 둘 중 하나만 1이면 1을 반환

5) ^
: 이진수의 각 자리수에 대해 연산, 서로 같으면 0을 반환하며 다르면 1을 반환



🥾 변환

1. 암시적 변환 (Implicit Conversion)

1) 코드로 나타내지 않아도 타입 변환이 가능한 경우
2) 실수가 발생할 수 있기에 주의를 기울여야 함
3) 데이터의 손실이 일어나지 않는 경우
→ 보통 작은 타입을 큰 타입으로 변환할 때 해당
→ 암시적 변환이 불가능하고, 변환이 필요한 경우 컴파일 오류 발생

2. 명시적 변환 (Explicit Conversion)

1) 데이터 손실이 일어나 암시적 변환이 불가능한 경우
2) 캐스팅 (Casting)

  • 캐스트 연산자를 이용해 명시적 변환하는 것
  • (변환하고자하는 타입) 변환하려는 데이터
  • ex. (float)12.34;

3) 메서드 사용

  • int type을 string으로 형변환 하는 경우 .ToString() 과 같이 캐스팅이 불가한 타입간의 변환을 지원하는 메서드도 있음

0개의 댓글