본문 바로가기
Programming/C++

C++ 입력 받기, 연산자 (1)

by ahhang0k 2021. 4. 4.

입력 받기

  • 입력을 받을때 여러 개를 받을 수 있다.
  • 여러개의 입력을 받을 시 에는 스페이스바를 누를 거나 엔터를 쳐서 입력을 받는다.
//변수 선언 
int intA; double doubleD; char charC; bool boolD;

//입력 
cout << "정수, 실수, 문자, 참거짓 입력하세요" << endl; 
cin >> intA >> doubleD >> charC >> boolD; cout << intA << "," << doubleD << "," << charC << "," << boolD;

 


 

이스케이프 시퀸스 (많이 사용하는 부분만)

  • \t : 커서를
  • \n : 줄바꿈
  • \"
    • ex) cout << "\"a와 b\" ";

 


 

2의 보수

컴퓨터가 음수를 표현하는 방싱

 

2진수 음수의 표현 방법 구분

⑴ 부호 크기 체계 (signed magnitude, sign and magnitude system)

- 첫번째 비트(부호 비트,sign bit) : 부호 비트(보통 가장 왼쪽 첫번째 비트, MSB) : `1` -> 음수, `0` -> 양수

 

 


 

오버플로우란?

오버플로우(overflow)란 해당 타입이 표현할 수 있는 범위를 넘는 데이터가 저장될 때 발생하는 현상을 가리킵니다.

오버플로우가 발생하면 최상위 비트(MSB)를 벗어난 데이터가 인접 비트를 덮어쓰므로, 잘못된 결과를 얻을 수 있습니다

 

 


 

전역(global)변수와 지역(local)변수

 

▶ 자동 형 변환(묵시적 형 변환): 자동으로 발생하는 형 변환

▶ 강제 형 변환(명시적 형 변환): 프로그래머가 형 변환을 명시해서 강제로 변환

 

대입 연산자의 왼편과 오른편에 존재하는 두 피연산자의 자료형이 일치하지 않으면, 저장소의 자료형에 맞춰서 형 변환이 일어나야 값의 저장이 가능하므로 왼편에 있는 피연산자를 대상으로 형 변환이 자동으로 일어납니다.

 

1**. 사용자가 직접 형변환을 시키는 경우 (명시적 형변환)**

개발자가 직접 형 변환을 시키는 것을 명시적 형변환이라 합니다.

명시적으로 형변환을 시키게 되면 굳이 다른 타입의 변수에 대입하지 않더라도 형변환이 일어남.

 

형변환시에 값이 변경되는 경우

실수 타입에서 정수 타입으로 형변환이 발생하는 경우 실수의 소주점 이하 부분이 잘리게 된다.

모든 타입에서 bool 타입으로 형변환할 때, 모든 0이 아닌 수는 true 즉, 1로 바뀐다.

0은 그대로 0으로 남아 flase의 의미를 갖는다.

 

문제가 발생하는 형변환

문제가 발생하는 형변환의 공통적인 조건은 큰 타입에서 작은 타입으로 형변환 일어난다는 것!!!!

큰 타입의 변수에 담겨있던 값이 작은 타입의 변수에 담길 수 없을 만큼 크다면 물리적 한계로 인해 올바른 값을 담을 수 없게 된다. 이런 경우에는 값의 일부가 잘려나가거나 예상할 수 없는 이상한 값으로 변질되어 버린다.

 

 

'Programming > C++' 카테고리의 다른 글

C++ 실습 놀이동산 요금 0406  (0) 2021.04.06
제어문 - if문  (0) 2021.04.05
C++ 연산자 (2)  (0) 2021.04.05
C++ 실습 입출력 0405  (0) 2021.04.05
C++ 기본  (0) 2021.04.04

댓글