Code Bye

询问万能的坛友一个C语言算法的名字

例如一个char型变量的值域:-128~127
现在设计软件在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

引用:
#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;  
}

一楼挺给力,提供了一个非常好的思路。但本人试了下,还是有点问题,这样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

映射

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明询问万能的坛友一个C语言算法的名字