2013-06-17 3 views
1


본인의 하드웨어에 대한 데이터 수집 코드를 작성하고 있습니다.char를 double로 변환하십시오.

그러나 수집 한 데이터의 평균을 찾아야합니다.

여기에 문제가 있으며 획득 한 데이터는 unsigned char 형식이므로 double 형식으로 변환해야합니다. 또한 수집 된 데이터는 지수 형태 [1.789232E-05]입니다.

unsigned chardouble으로 다시 변환 할 수있는 방법이 있습니까?

나는 double junsigned char a[200]
입니다. 서명되지 않은 문자는 1.789232E-05로 구성됩니다. 데이터를 두 배로 변환하려면 어떻게해야합니까?

감사합니다.

+0

'1.789232E-05'는 예제입니까? 이 경우 "unsigned char"가 아니며 문자열입니다. "C++에서 strtod()를 사용하여 문자열에서 이중으로 변환하는 방법을 혼란스럽게하는"질문을 읽을 수 있습니다. [http://stackoverflow.com/q/5687269/139746] –

+0

'지수형 문자 '란 무엇입니까? oO – riv

+0

또는이 질문 : http://stackoverflow.com/questions/1710447/string-in-scientific-notation-c-to-double-conversion – ThePragmatist

답변

3

당신은 char에서 double로 변환하기 위해 atof를 char로 변환하려고 할 수 있습니다. char *를 사용하여 변환 된 double을 저장하는 것이 좋습니다.

링크는 MSDN에서으로 atof합니다 : http://msdn.microsoft.com/en-us/library/hc25t012%28v=vs.71%29.aspx

+0

이 변환 방법을 사용하는 방법에 대한 예가 있습니까 ?? 네가 나를 보여 주면 나는 큰 도움이 될 수있다. :) – Ashton

+0

링크를 보셨습니까? 링크를 살펴 봐야합니다. –

+0

작은 메모 : Microsoft 용으로 프로그래밍하는 경우 TCHAR 버전'_tstof'을 사용하십시오. 유니 코드로 컴파일하면 자동으로 UNICODE로 변환됩니다. 실제로 모든 C 문자열 함수에 적용됩니다. 항상 C 함수의'_t' 버전을 찾습니다. – cha

0

는 "지수 형태"콘크리트 아무것도 의미하지 않는다. 데이터가 8 비트 인 경우 A-Law 또는 μ-Law 중 G.711 형식 일 수 있습니다. 어느쪽에 따라 다른 변환 루틴을 사용해야합니다. (두 경우 모두, 8 비트 형식은 1 비트 부호, 3 비트 지수 및 4 비트 가수입니다.

+0

OP의 질문에'1.789232E-05'를 쓰면, 4 비트 이상의 가수가 있다고 생각합니다. –

+0

@ MrLister 예. 그의 질문은 정말로 분명하지 않습니다. 그러나 다른 "지수 형식"은 1 바이트에 적합하다는 것을 알고 있습니까? (G.711 형식은 13 또는 14 비트 정수를 8 비트 지수 형식으로 변환하므로 정밀도가 떨어 지므로 음수 지수가 전혀 없습니다.) –

관련 문제