C语言编程,怎么将0-255转化到0-64

例如,输入为0-255的整数,通过公式换算或者函数处理后,可得到0-64的整数,换算比率可以不为等比列,等比列最好,不能等比列的话,进率不能相差太多

等比率的话,直接除以4
不等比率的话,这么写
int conv(int n)
{
int arr[] = {0,0,0,1,2,3,3,4,4,5,5,5,5,5,5,6,7,8...64}; //把0-255应该转换为什么,写在这里,下标0表示0转换为什么,1表示1转换为什么
return arr[n];
}

先确认一点,0到255是256个数,0到64是65个数,你确定不说0到63?
之后要处理的话,数据肯定用浮点表示,代码来做就是这样:

int main()
{
    double x,y;
    scanf("%lf", &x);
    y = x / 256.0 * 65;
    printf("%lf", y);
}

#include < stdio.h >
#include < stdlib.h >

int main()
{
int input;
int ssmall;

printf("Input(0~255):");
scanf("%d", &input);
        ssmall=(((input)*64)/255);
        printf(" \r\nChnage to(0~64) : %d\r\n",ssmall);

return 0;

}

int func(int a)
{
    int b = (int)(a/255*64);
    return b;
}