본문 바로가기

프로그래밍

(54)
[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 //쓰레드에 의해 호출되는 함수에..
[C#] LINQ 집계 작업, 표준 쿼리 연산자 표준 쿼리 연산자는 LINQ 패턴을 형성하는 메서드입니다. 집계 작업은 컬렉션을 특정 조건으로 계산하여 하나의 값을 출력합니다. ​ 예를 들어 1달 동안 일일 온도 값을 기록한 컬렉션에서 평균 온도를 계산한다던지, 학생들의 성적을 기록한 컬렉션에서 가장 점수가 높은 학생을 찾는 작업을 수행할 수 있습니다. ​ 이러한 작업을 집계 작업이라고 하며, LINQ에서는 집계 작업을 위해 'Aggregate, Average, Count, Max, Min, Sum'함수를 지원하고 있습니다. 이번 글에서는 이중에서 'Aggregate'에 대해서만 설명해보고자 합니다. 집계 작업이 전체적으로 간단하기도 하고, Aggregate 가장 어려우면서 가장 많이 사용하는 함수이기 때문입니다. Aggregate에 대해 설명하기 전..
[C#] LINQ 프로젝션 작업, 표준 쿼리 연산자 표준 쿼리 연산자는 LINQ 패턴을 형성하는 메서드입니다. 프로젝션 작업은 이후에 사용할 속성으로만 구성된 새 양식으로 개체를 변환하는 작업을 가리킵니다. ​ 예를 들어 문자열의 배열로 이루어진 개체가 있다고 하고 여기서 첫글자만 뽑아서 활용하고 싶을 때, 이 개체의 문자열에서 첫글자만을 남기는 새로운 양식으로 변환하는 작업을 생각하시면 됩니다. ​ 이러한 작업을 프로젝션이라 하며, LINQ에서는 프로젝션 작업을 위해 'Select'와 'SelectMany'를 지원하고 있습니다. Select의 경우 모든 소스 값에 대해 하나의 결과 값을 생성합니다. 따라서 전체 소스 컬렉션과 동일한 개수의 요소가 들어 있는 컬렉션을 만듭니다. 반면, SelectMany는 각 소스 값에서 연결된 하위 컬렉션을 포함하는 하..
[C#] LINQ 데이터 필터링, 표준 쿼리 연산자 표준 쿼리 연산자는 LINQ 패턴을 형성하는 메서드입니다. 이를 잘 활용하기 위해 하나하나 정리해보도록 하겠습니다. 순서는 내맘대로. 가장 쉬워보이는거 먼저 정리하겠습니다. 오늘은 데이터 필터링 입니다. 출처는 MSDN 입니다. 표준 쿼리 연산자 개요 - Visual Basic 표준 쿼리 연산자 개요(Visual Basic)Standard Query Operators Overview (Visual Basic) 이 문서의 내용 --> 표준 쿼리 연산자는 LINQ 패턴을 형성하는 메서드입니다.The standard query operators are the methods that form the LINQ docs.microsoft.com 필터링 개요 필터링은 지정된 조건을 충족하는 요소만 포함하도록 결과 집..