Objective c将一个数字范围映射到另一个

KTa*_*Tas 1 iphone objective-c ios5

嗨我想在iPad应用程序的目标C中将特定范围的数字映射到不同的范围.

例如,我的输入值可能在0-255范围内,但我想输出的范围是0.5-1.例如,127.5的输入将导致0.75的输出.

提前干杯.

Nic*_*rge 8

这是一般解决方案(它应该适用于范围和输入值的任何组合):

CGFloat const inMin = 0.0;
CGFloat const inMax = 255.0;

CGFloat const outMin = 0.5;
CGFloat const outMax = 1.0;

CGFloat in = 127.5;
CGFloat out = outMin + (outMax - outMin) * (in - inMin) / (inMax - inMin);
Run Code Online (Sandbox Code Playgroud)


the*_*ory 5

计算第一个的比率并将其应用到第二个的范围:

CGFloat result = ((127.5 / 255) * 0.5) + 0.5;
Run Code Online (Sandbox Code Playgroud)