One Byte를 고르게 확장하는 가장 좋은 방법은 무엇입니까?
문제
CI에서는 a uint8_t
0-255 ~ 0-11
이것을 고르게하는 가장 좋은 방법은 무엇입니까?
해결책
8 비트에서 5 비트에서 5 비트로 확장하려는 경우 3 비트 변속을 할 수 있습니다.
uint8_t scaled = (uint8_t)(original >> 3);
이것은 더 낮은 3 비트를 떨어 뜨립니다.
다른 팁
간단한 곱셈과 분할을 사용할 수 있습니다.
uint8_t scaled = (uint8_t)(((uint32_t)original * 32U) / 256U);
제휴하지 않습니다 StackOverflow