C++(15)
-
부동소수점 정수 변환
정수는 시프트(부동소수점(float)은 곱셈 연산이 필요 -> 비트 시프트가 의미 없음raw raw가 int일 때raw × 256raw * (1 raw가 float일 때raw × 256결과는 같지만 자료형에 따라 다름 반대로 원상 복구toInt()고정 소수점 → 정수 (정수부만 추출)960 >> 8 = 3toFloat()고정 소수점 → 부동 소수점 (복원)960 / 256 = 3.75
2025.04.30 -
round
cmath.h에 포함반올림 함수가장 가까운 정수로 반올림round()double 타입용 반올림 함수roundf()float 타입에 대해 동작roundl()long double 타입용 반올림 함수floorf()내림 함수 (float)ceilf()올림 함수 (float)truncf()소수점 이하 버림 함수 (float)
2025.04.30 -
부동소수점 숫자
정확도 대 정밀도"정확도"는 측정값이 실제 값에 얼마나 가까운지를 나타내는 반면,"정밀도"는 어떤 양에 대해 얼마나 많은 정보를 가지고 있는지, 그리고 얼마나 고유하게 고정되어 있는지와 관련이 있습니다. 정수는 정확성이라는 특성을 지님. 그러나 정밀도는 낮음.ex) 4/2 = 2, 5/2 = 2 부동소수점 숫자는 정확도와 정밀도 측면에서 정수와 정반대이다.숫자를 나타내는 정보를 의도적으로 버리지 않으므로 정밀도가 좋다. 비트가 충분하다면 모든 FP 계산을 역순으로 처리하여 원래 숫자를 얻을 수 있다.하지만 부동소수점 숫자는 정확도가 낮다. 많은 비트를 써서 최대한 근사하지만, 그 값이 진짜 원래 값은 아니다.ex) 1/3 = 0.33333333333, 0.1 + 0.2 == 0.3 False 표현IEE..
2025.04.29 -
Orthodox Canonical Form
Orthodox Canonical Form (OCF), 또는 "정통 표준 형식", "정통 캐노니컬 폼"C++ 클래스가 복사와 대입, 소멸을 안전하고 예측 가능하게 수행할 수 있도록 하기 위한 기본적인 설계 원칙입니다. 이는 클래스가 복사 가능하고, 대입 가능하며, 자원을 적절히 해제할 수 있게 하는 4개의 핵심 함수를 정의하는 것 1. 기본 생성자(default constructor)ClassName();2. 소멸자(destructor)~ClassName();3. 복사 생성자(copy constructor)ClassName(const ClassName& other);4. 대입 연산자 오버로딩ClassName& operator = (const ClassName& other);
2025.04.29 -
fstream
fstream 클래스는 파일 입출력 스트림을 다루는 클래스이며, 다양한 함수들이 제공되어 파일을 읽고 쓰고, 위치를 설정하는 등의 작업을 할 수 있다. fstream은 ifstream(입력용)과 ofstream(출력용)을 확장한 클래스이므로, 이들의 기능을 모두 포함한다. 1. 파일 열기 및 닫기open( ) 파일 열기std::ios::in: 읽기 모드로 파일 열기.std::ios::out: 쓰기 모드로 파일 열기.std::ios::app: 추가 모드로 파일 열기 (파일 끝에 데이터 추가).std::ios::ate: 파일 끝으로 이동하여 데이터를 추가하거나 수정.std::ios::trunc: 파일을 열 때 기존 내용을 삭제하고 새로 작성.file.open("filename", std::ios::in | ..
2025.03.31 -
참조자(Reference)
참조자(Reference)1. 선언과 동시에 초기화int &r; // 불가능 (초기화 필요)int x = 5;int &r = x; // 가능2. 한 번 참조한 변수만 가리킬 수 있음 (재할당 불가)int a = 10, b = 20;int &ref = a;ref = b; // ref가 b를 참조하는 것이 아니라, a의 값을 b로 변경함3. NULL을 가리킬 수 없음 int &r = NULL; // 불가능
2025.03.27