2012-02-08 5 views
-1

죄송 합니다만 이미 물어 본 적이 있지만이 질문에 대한 명확한 답변을 찾을 수 없습니다.c - char * array를 int로 변환하고 float으로 변환하는 가장 효율적인 방법은 무엇입니까?

char * array to int 
char * array to float 

은 숯불 * 배열 예를 들어, 수를 저장 : 이, 제발 말해, 변환하는 가장 빠른 방법은 무엇입니까

"12345" 
"1234,56789" 

x86 및 x64 시스템을위한 가장 빠른 방법이 다른 경우, 둘 다 말해줘.

편집 : "가장 빠름"은 "가장 효율적"을 의미하며 "사용하기가 가장 쉽지 않음"을 의미합니다.

+1

atoi() 및 atof()를 봅니다. 나는 단지 구글이 그 것을 놓쳤던 방법을 궁금하게 생각한다 ???? – Mithrandir

+0

몇 가지 방법을 알고 있지만 가장 빠른 방법이 필요합니다. 큰 데이터 덩어리를 처리하는 데 유용합니다. –

답변

9

시작 atoi 함수()와으로 atof(), 그것은 문제가 있는지 결정 속도를 측정과 - 거의의 I/O는 모든 시간을 지배 할 것이라고 확신 지출이 있어요 - 다음 편집이

해결책을 찾아 전환을하는 것. 전환 시간이 중요하다면 (프로필을 작성한 후) 형식을 알고 있다면 ie. 의 int는

2

당신은 단지의 int에 대한

atoi() 

을 사용할 수 있습니다 당신은 표준 LIB보다 더 나은 않는 손 조정 루틴을 쓸 수 있습니다, 항상 5 소수점이 수레, 항상 로드셀을하다
atof() 

수레 용.

1

int의 경우 명백한 루프가 가장 빠릅니다.

float의 경우 훨씬 더 복잡합니다. 결과가 옳은지 신경 쓰지 않는다면, 마찬가지로 간단한 루프도 좋습니다. 정확한 결과가 필요한 경우 strtod 또는 atof 또는 유사 항목을 사용하는 것이 좋습니다. 자신의 롤링이 매우 어렵 기 때문입니다.

관련 문제