본문 바로가기

Programming/C++ 2

[C++ 연습문제] 3장. 데이터 처리 (1)

반응형

01. C++이 여러 개의 정수형을 제공하는 이유

더보기

효율적인 메모리 관리를 위해 메모리 크기에 맞는 다양한 정수형을 사용하기 위해서

더보기

특별한 요구에 적합한 데이터형을 골라서 사용 가능하므로

특정 데이터형을 사용하면 계산 속도를 높일 수 있다.

02. 다음과 일치하는 변수 선언

a. 값이 20인 short형 정수

b. 값이 42,110인 unsigned int형 정수

c. 값이 3,000,000,000인 정수

더보기

short var1 =20;

unsigned int var2 = 42110;

long long var3= 3000000000;

더보기

short rbis=80; //short int rbis=80;

unsigned int q = 42110; //unsigned q =42110;

unsigned long ants =3000000000; //long long ants = 3000000000;

03. 정수형의 한계를 벗어나지 않도록 하는 장치

더보기

데이터형 변환자

더보기

C++은 정수값의 한계를 벗어나지 않도록 하는 안전장치르 제공하지 않는다.

정수값의 한계는 climits 헤더파일을 보면 알 수 있다.

04. 33L과 33의 차이

더보기

33L은 정수형으로 표현할 수 없지만 33은 정수형과 문자형 모두 사용가능하다

더보기

33L은 long형 상수이고 33은 int형 상수이다

05. 같은 구문인지 확인

char grade = 65;

char grede = 'A';

더보기

char는 정수형과 문자형 둘 다 사용가능한 데이터형으로

정수형으로 사용할 경우 (-128 ~ 127) 범위 내에서만 사용가능하지만

정수를 ' '없이 사용한다면 아스키코드로 대체되는데 문자 'A'는 아스키코드로 65에 해당하므로 같은 구문

06. 코드 88에 해당하는 문자를 알려주는 두가지 방법

더보기

char c=88;

cout<<c<<endl;

더보기

char c=88;

cout<<c<<endl;

cout.put(char(88));

cout<<char(88)<<endl;

cout<<(char)88<<endl;

07. long형 값을 float형에 대입할 때 에러 발생하는데, long형 값을 double형에 대입하면 어떻게 되는지, long long형 값을 double형에 대입하면 어떻게 되는지

더보기

 

정수형인 long형은 32비트, long long형은 64비트

부동소수점형 float 32비트, double 64비트, long double(80~128비트)에 포함하므로

 

더 큰 크기의 비트로 대입하므로 에러가 발생하지는 않는다.

 

더보기

두 데이터형이 얼마나 크냐에 따라 다르다

long형이 4바이트이면 데이터 손실이 일어나지 않는다.

4바이트는 10자리 수인 2147483647까지 저장

double형은 유효숫자를 13자리까지 허용하므로 long형을 double형에 대입할 때 버림이 일어나지 않는다

long long형은 19자리까지 표현하므로 double의 13자리 범위를 초과한다.

08. 다음의 수식을 계산

a. 8*9+2

b. 6*3/4

c. 3/4*6

d. 6.0*3/4

e. 15%4

더보기

a. 74

b. 18/4 -> 4

c. 0*6 -> 0

d. 18/4 -> 4.5

e. 3

09. x1과 x2는 두 개의 double형 변수인데 이 변수를 정수로 더해서 정수형 변수에 대입

더보기

int x3= int x1 + int x2;

더보기

double형을 정수로 더해서 변환

int pos= (int) x1+ (int) x2;

int pos = int(x1) + int (x2);

 

double형으로 더해서 변환

int pos=(int) (x1+x2);

int pos=int (x1+x2);

10. 다음의 경우의 각각의 변수형 

a. auto cars=15;

b. auto iou=150.37f;

c. auto level= 'B';

d. auto crat = U'/U00002155

e. auto frat = 8.25f/2.5

더보기

a. int

b. float

c. char

d. 

e. float

더보기

a. int

b. float

c. char

d. char 32_t

e. double [float 

반응형