例如一个char型变量的值域:-128~127
现在设计软件在0~100之间来作为调节参数。
也就是说,
设置一个0: 表示输入一个参数-128
设置一个50:就表示输入一个参数0
设置一个100:表示输入参数127
本人想问的是C语言中这样的算法叫什么名字,假如有思路也可以告诉本人,以前从没有这样搞过。
现在设计软件在0~100之间来作为调节参数。
也就是说,
设置一个0: 表示输入一个参数-128
设置一个50:就表示输入一个参数0
设置一个100:表示输入参数127
本人想问的是C语言中这样的算法叫什么名字,假如有思路也可以告诉本人,以前从没有这样搞过。
解决方案
30
#include<stdio.h> signed char myScale(int v){ return -128 + ((255*v/100) + 0.5); } int main() { printf("%d -> %d\n%d -> %d\n%d -> %d\n",0, myScale(0), 50, myScale(50), 100, myScale(100)); return 0; }
5
一楼挺给力,提供了一个非常好的思路。但本人试了下,还是有点问题,这样double转unsigned char 都是向下取整了:
-128+(255*0/100+0.5)是-127.5,输出是-127;
-128+(255*50/100+0.5)是-0.5,输出是0;
-128+(255*0/100+0.5)是127.5,输出是127;
5
映射