본문 바로가기

C++

(40)
[C++] 고정수소점, 부동소수점 고정소수점 고정 소수점이란 10진수를 2진수로 바꾼 다음 해당 값을 그대로 수소점에 삽입하는 방법이다. 맨 앞 1자리는 부호 비트를 사용하고 나머지 비트들을 소수점을 기준으로 정수부와 소수부를 표현하는 데 사용하게 된다. 이때 소수점의 위치는 미리 정해둔다. 그리고 소수부는 점의 뒤부터 채우면 비어있는 곳은 0으로 채우게 된다. 이러한 고정소수점 방식은 구현하기 편리하지만 사용하는 비트 수 대비 표현 가능한 수의 범위 또는 정밀도가 낮기 때문에 실수를 다룰 필요가 있는 범용 시스템에서 거의 안 쓰이고, 높은 정밀도가 필요 없는 소규모 시스템에 사용하게 된다. 부동소수점 부동소수점의 경우에는 2진수로 변화한 값을 그대로 추가하는 게 아닌 정규화 과정을 거치고 삽입하게 된다. 변화하는 방법은 지수부에 1만 ..
C++ Dll생성 및 사용 DLL프로젝트 만들기 DLL 프로젝트를 만들고 콘솔 프로젝트에서 DLL 프로젝트의 함수를 실행시키는 프로젝트 1. 콘솔 프로젝트 만들기 솔루션탐색기 -> 추가 -> 새 프로젝트 -> Win32 프로젝트 콘솔 응용프로그램을 만든다. 2. 빈프로젝트에 DLL 프로젝트 생성 솔루션탐색기 -> 추가 -> 새 프로젝트 -> Win32 프로젝트 해당 프로젝트는 콘솔 응용 프로그램이 아닌 DLL 항목을 선택 후 빈 프로젝트 옵션을 체크해 준다. 여기까지 했다면 2개의 프로젝트가 생성되었을 것이다. 3. DLL프로젝트에 TestClass생성 TestClass를 생성 후 1 2 3 4 5 6 7 8 9 10 11 12 13 #pragma once #include using namespace std; class TestC..
C++ Static Library ,DLL(Dynamic Linking Library) Library란? 자주 사용하는 함수들을 하나의 파일로 모아둔 것. Library로 한번 만들어두면 다시 만들 필요 없이 해당 Library만 불러와서 사용할 수 있어 개발 속도가 빨라지는 장점이 존재 Static Library란? 정적 라이브러리 라고 불린다. exe파일을 만들때 해당 Library파일이exe파일에 포함되는 형태 컴파일 시점에 실행 파일에 함수를 복사하지 않고, 함수의 위치 정보만 갖고 컴파일 타임에 내 소스와 결합되는된다. Static Library특징 시스템 환경이 변해도 실행파일에 아무런 영향이 없어 안정적으로 사용할수 있다. 모든 오브젝트 코드가 실행 파일에 묶여 있기때문에 실행파일의 코드가 커진다. 실행파일만 배포하여도 실행할수있다. DLL이란? 동적 라이브러리 라고 불린다. ..
C++ 콜백함수 콜백함수 란 프로그래밍에서 콜백(callback) 또는 콜애프터 함수(call-after function)[1]는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다. ko.wikipedia.org/wiki/%EC%BD%9C%EB%B0%B1 콜백 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 프로그래밍에서 콜백(callback) 또는 콜애프터 함수(call-after function)[1]는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 ko.wikipedia.org 콜백함수를 이용하여 함수포인터와 횟수를던져주면해당 횟수만큼 함수를 ..
C++ STL(Map) Map이란 Key값과 Value값을가지고있는 Red-Black Tree의 자료구조이다. Map의 특징 1. Map은 가지고 있는 값을 정렬한다. 2. 중첩된 key 값을 가질 수 없다. 3. 저장할 자료가 적을 때는 메모리 낭비와 오버헤드가 일어난다. Map의 정의 및 삽입 1 2 3 4 5 6 7 8 9 10 void main() { map m; pair p("A", 10); m.insert(p); m.insert(pair("B", 20)); cout
C++ STL(알고리즘) 알고리즘 이란? 전역함 수로 선언된 컨테이너들의 작업을 도와주는 여러 가지 기능들이 정의되어 있는 라이브러리이다. 정렬알고리즘 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 template bool Less(T _Dst, T _Src) { return _Dst
C++ STL(반복자 iterator) 반복자 iterator란? 컨테이너를 순회하는 방법 반복자는 객체이다. iterator 순회 출력 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 void main() { vector vecint; vecint.push_back(10); vecint.push_back(20); vecint.push_back(30); vector::iterator iter_begin = vecint.begin(); vector::iterator iter_end = vecint.end(); for (; iter_begin != iter_end; iter_begin++) { cout
C++ STL(Vector) Vector란? 배열기반의 컨테이너로 메모리가 자동으로 heap에 할당되는 배열이다. Vector의 특징 vector는 배열 기반으로 이뤄져 있기 때문에 삽입 삭제가 배열의 맨 뒤에서만 이루어진다. 중간부터의 삭제도 가능하지만 중간의 삽입 삭제 경우에는 삽이 한 위치에서부터 모든 배열을 뒤로 미루거나 삭제 시에는 모든 배열을 앞으로 당겨줘야 하는 문제가 존재하여 성능상 비효율적이다. 할당 메모리 이상의 데이터 값을 넣을 때는 복사 할당이 이루어진다. 메모리가 이상의 값이 들어올 경우에는 현재의 메모리의 1.5배 크기의 메모리를 동적할당하여 해당 동적할당 값에 값을 복사하게 된다. vector의 선언과 삽입 삭제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 void ma..