2011-02-10 4 views
12

16 비트 고정 소수점 프로세서가 있고 고정 소수점 처리를하고 싶습니다. 부호없는 16 비트 정수에 사용할 올바른 데이터 유형을 찾고 있습니다.고정 소수점 처리 : uint16_t와 uint_fast16_t의 차이점은 무엇입니까?

내 질문은 uint16_tuint_fast16_t의 차이점은 무엇입니까? (이들은 stdint.h에 포함되어 있습니다.) 더 빠르기 때문에 uint_fast16_t이 더 낫습니까 ??

감사합니다.

+1

http://en.wikipedia.org/wiki/Stdint.h#Integer_types – kennytm

답변

12

uint16_t은 부호없는 16 비트 정수입니다. uint_fast16_t은 최소 16 비트가 사용 가능한 가장 빠른 부호없는 정수입니다.

+6

"가장 빠름"을 정의 할 수 있다면 대답이 더 도움이 될 것입니다. –

+3

신경 쓰지 마라. "표준은 너비가 N보다 크거나 같아야한다는 것을 제외하고는 이러한 유형에 대해 어떤 것도 요구하지 않는다. 또한"빠른 "정수 유형이라는 것을 결정하는 것을 구현 자에게 맡긴다." –

+0

흥미 롭습니다 ...이 데이터 형식에 지정된 크기가 없다는 것이 이상하게 보입니다. 사용자에게 달려 있습니다 .. o_o 그러면이 데이터 형식에 sizeof()를 수행하면 오류가 발생합니까? 어쨌든, 나는 uint_fast16_t가 나에게 적용될 것이라고 생각하지 않는다. 고정 소수점 산술을위한 내 데이터 유형으로 uint16_t를 고수 할 것입니다. :) Thanks ... –

6

uint16_tuint_fast16_tuint_least16_t보다 더 제한적입니다. 나중의 두 비트는 16 비트보다 넓을뿐만 아니라 패딩 비트 (패리티 비트와 같은 값을 고려하지 않은 비트)를 가질 수도 있습니다.

이 차이는 서명 된 유형에 대해 더욱 두드러집니다. 여기서 정확한 너비 유형 은 음수 값을 나타 내기 위해 2의 보수를 사용해야합니다.

관련 문제