본문 바로가기

분류 전체보기

(335)
[C언어] C, C++ 코드실행시간 측정하기 코드에서 함수나 특정 부분의 실행시간이 궁금한경우! 어떻게 실행시간을 측정하실건가요? 혹시 초시계같은걸로 측정하시려는건 아니겠죠? 코드 시간이 몇십초단위로 길다면 그렇게 측정해도 되겠지만, 0.01초가 중요한 시스템이나 코드시간이 1초도 안되는 경우는 초시계로 측정하기는 힘들겠죠? 저는 그런 상황이 발생한다면! 코드에서 실행시간을 측정하는 코드를 추가해서 로그하는 방식으로 실행시간을 측정할겁니다! 그 방법은 바로 'QueryPerformanceFrequency'과 'QueryPerformanceCounter'함수를 이용하는건데요! 백문이 불여일견! 바로 코드로 확인해보시죠 ~~~ ~ 코드 #include #include int main(void) { LARGE_INTEGER PreFreq; LARGE_I..
[C언어]제곱을 구하는 pow함수! 음수의 제곱도 구할 수 있을까? 안녕하세요. pow함수가 음수제곱도 지원하는 줄 알고 프로그래밍하다가 4시간을 날려먹은 한노입니다. 그말 그대로 pow함수는 음수의 제곱을 구할 수 없습니다! pow함수의 지수값에 음수를 넣으면 0을 리턴하게 되죠. 하지만 조금만 생각해보면 pow함수로 음수의 제곱을 계산할 수 있게되죠. 2의 제곱 - 2 4 8 16 2의 음의제곱 - 1/2 1/4 1/8 1/16 보면 감이 오시나요? 1을 어떤 수의 제곱으로 나누면, 그 어떤 수의 음의 제곱값을 알 수 있습니다! 그럼 이를 프로그램으로 구현해보겠습니다. if(지수값>=0)1*pow(2,지수값); else 1/pow(2,fabs(지수값)); 참 쉽죠? 참고로 fabs는 수의 절대값을 구하는 함수입니다! 위 예제에서는 지수값의 절대값을 구해 pow함수가 ..
[C언어]부동소수점으로 저장된 데이터를 정수형으로 바꾸기 안녕하세요. 세상에는 다양한 장비가 있고 그 장비중에서는 메모리안에 데이터가 부동소수점형태로 저장되어있어서, 이것을 읽기 위해서 정수형의 형태로 데이터를 변환해줘야 할 때가 있어요. 이번에는 그에 대한 프로그램을 작성해볼게요. 참고로 여기서 사용하는 부동소수점은 IEEE754(https://ko.wikipedia.org/wiki/IEEE_754)를 참조했어요 출력 데이터가 16비트일 경우(혹은 상위16비트만 읽은 경우) #define DECIMAL 100 //소수점 2자리까지 보기 위해 결과값에 100을 곱해주고 소수점을 자름 #define BIAS 127 //지수에 더해주는 값(IEEE754) out = 메모리에서 읽어온 데이터 값 outSign= *out & 0b1000000000000000 ? -1..
[C언어]CMD Printf 고급 스킬! (c언어 커서 위치 바꾸기) 안녕하세요. 두부입니다. 제목을 뭘로 지을지 몰라서 저렇게 지었는데.. 무슨말인지 모르시겠죠 ㅜ 저도 잘 표현하기가 힘드네요. 제가 프로그래밍을 하다가, printf문으로 폼을 미리 출력하고 커서 위치를 자유자재로 지정하여 문자를 입/출력하는 프로그램을 만들고 싶었습니다. 그래서 만들었습니다. 일단 완성 사진부터 보여드리겠습니다. 일단 틀을 먼저 출력한 후, scanf문을 이용하여 ( ) 괄호안에 문자를 입력받는 프로그램입니다. 즉, 원래 1,2,3 이 있던 자리는 빈칸이고, 위 괄호 안부터 순서대로 커서가 깜박거리며 문자를 입력하라고 사용자에게 알려주는 프로그램입니다. 그럼 코드를 보겠습니다. #include "stdafx.h" #include #include #include #pragma warnin..
[C언어]INI파일 사용하기 (GetPrivateProfileString) *INI파일에 대한 자세한 내용은 나무위키에 검색해주세요 원형: DWORD WINAPI GetPrivateProfileString o _in_ LPCTSTR lpAppName, //Section의 이름 _in_ LPCTSTR lpKeyName, //Key의 이름 _in_ LPCTSTR lpDefault, //읽기에 실패할 경우 버퍼에 들어갈 디폴트 데이터 _out_ LPCTSTR lpReturendString, //읽은 내용이 들어갈 버퍼 _in_ LPCTSTR nSize, //읽기 버퍼의 사이즈 _in_ LPCTSTR lpFileName, //INI파일이 위치하는 경로 예:(SectionA, Bvalue, "-1", Csave, 255, ./Dinifile.ini) -> Dinifile.ini파일의 S..
[C언어]C언어 시리얼통신 - CreatFile (RS232, RS485 등) 1.CreateFile 파일 또는 I/O장치를 만들거나 여는 함수입니다. 일반적으로 사용되는 I/O장치는 파일, 파일스트림, 디렉터리, 실제 디스크, 볼륨, 콘솔 버퍼, 테이프 드라이브, 통신 리소스, 메일 슬롯 및 파이프입니다. 저는 CreateFile함수를 이용하여 시리얼통신을 위한 COM Port를 사용했으며, 제가 아는만큼 설명할수밖에 없으니 이 글에서 이 함수는 시리얼통신을 위하는게 주 목적으로 사용할 것 입니다. 이 함수는 파일이나 장치들의 핸들을 반환하며, 핸들을 통해 장치를 액세스하는 데 사용할 수 있습니다. 문법 WINAPI CreateFile( LPCTSTR lpFilename, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBU..
[C언어]멀티쓰레드 기반의 서버구현 쓰레드란? -경량화된 프로세스. 동시실행이 가능하며 프로세스의 단점을 극복하기 위해 등장. -스택을 제외한 나머지 메모리 공간을 공유 -보다 간단한 context switching -일부메모리를 공유하므로 스레드간 통신이 편리 thread관련 헤더파일은 int pthread_create( //쓰레드 생성 함수 pthread_t *thread, // 생성된 쓰레드의 ID를 저장할 변수의 포인터를 인자로 전달 pthread_attr-t *attr, //생성하고자 하는 쓰레드의 특성(attribute)를 설정할때 사용. 일반적으로 Null을 전달 void *(*start_routine) (void*), //리턴타입과 인자가 void*인 함수를 가르키는 포인터 void *arg //쓰레드에 의해 호출되는 함수에..
[구글링]ppt 검색하기, 특정 사이트 검색 ( site ) 특정 사이트에서만 검색하고싶은경우! 하지만 그 사이트 전체적인 검색창이 없는경우! 이럴 때는 어떻게 해야 할까요? 바로 구글 검색 연산자를 이용해야죠! 그럼 youtube에서만 '두부'를 검색한다고 생각하고 특정 사이트에서만 검색하는 'site'연산자를 사용하는 것을 보여드리겠습니다! ~~~ ~ 먼저 그냥 '두부'를 검색한 경우! 맨위에는 나무위키에서 두부의 검색결과를 보여주고 똑똑한 구글이 현재 제가 있는 안양시근처의 두부집을 광고해주네요. 나무위키에서도 검색결과가 나오고 다른 사이트에서 검색결과가나오고 이런 저런 사이트의 검색결과가 나오는 것을 확인할 수 있습니다. ~ ~ 그럼 site연산자를 사용해서 youtube에서만 검색한경우! 위 결과처럼 youtube에서만 검색되는 것을 보실 수 있습니다! ..