由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 怎样实现这个线性转换的算法 (转载)
相关主题
怎样将array^转换成string?面试题 -算法?
unsigned 8bit integer转换成signed 16bit应该是什么结果?请教:Map reduce到底是什么啊 (转载)
有人发过的一个面试题请教一个算法问题 (转载)
FLG面试题,压缩整数求集合包含,最快的算法是什么?
Matlab 中怎样设置坐标轴刻度的精度一道实用的算法题
什么程序可以把中文转换成unicode ?再问个算法的问题
什么方法能把matlab文件转换成c并且执行这个转换后的c不依赖于matlabnew了指针,delete的时候出错了
请教C的类型转换问题问一个在C里面转换十六进制的问题
相关话题的讨论汇总
话题: 整数话题: 范围话题: 算法话题: 线性话题: 转换
进入Programming版参与讨论
1 (共1页)
a****l
发帖数: 8211
1
【 以下文字转载自 CS 讨论区 】
发信人: acectl (磨), 信区: CS
标 题: 怎样实现这个线性转换的算法
发信站: BBS 未名空间站 (Tue Nov 23 14:38:29 2010, 美东)
算法的原理很简单,输入x,输出y.x的范围(0-1000)的整数,y的范围是(0-1500)的整数,
将x线性的按比例关系转换成y,也就是y=1.5x,小数点后的舍入方法随便(就是说y=2.5的
话算2或者3都可以)
现在的关键是,x是一个16位的整数(unsigned int, 16bits),y也是一个16位的整数,要
求是计算过程中不能用到32位的运算,就是说不能把x,y转换成32位算好再转换回来,这
该怎么计算?有谁知道这个怎么办吗?显然,查表的方法也是不允许的(内存的占用必须是
固定的,不能随范围变化而变化)
另外的一个要求是,y的范围是可以变的,所以不能用固定的乘1.5的算法,y应该可以是任
何一个16位整数可表达的范围.
p***o
发帖数: 1252
2
y = 1.5x = x+x/2 = x+(x>>1)
依此类推,多少都行。

【在 a****l 的大作中提到】
: 【 以下文字转载自 CS 讨论区 】
: 发信人: acectl (磨), 信区: CS
: 标 题: 怎样实现这个线性转换的算法
: 发信站: BBS 未名空间站 (Tue Nov 23 14:38:29 2010, 美东)
: 算法的原理很简单,输入x,输出y.x的范围(0-1000)的整数,y的范围是(0-1500)的整数,
: 将x线性的按比例关系转换成y,也就是y=1.5x,小数点后的舍入方法随便(就是说y=2.5的
: 话算2或者3都可以)
: 现在的关键是,x是一个16位的整数(unsigned int, 16bits),y也是一个16位的整数,要
: 求是计算过程中不能用到32位的运算,就是说不能把x,y转换成32位算好再转换回来,这
: 该怎么计算?有谁知道这个怎么办吗?显然,查表的方法也是不允许的(内存的占用必须是

l******e
发帖数: 12192
3
keyword: Bresenham

【在 a****l 的大作中提到】
: 【 以下文字转载自 CS 讨论区 】
: 发信人: acectl (磨), 信区: CS
: 标 题: 怎样实现这个线性转换的算法
: 发信站: BBS 未名空间站 (Tue Nov 23 14:38:29 2010, 美东)
: 算法的原理很简单,输入x,输出y.x的范围(0-1000)的整数,y的范围是(0-1500)的整数,
: 将x线性的按比例关系转换成y,也就是y=1.5x,小数点后的舍入方法随便(就是说y=2.5的
: 话算2或者3都可以)
: 现在的关键是,x是一个16位的整数(unsigned int, 16bits),y也是一个16位的整数,要
: 求是计算过程中不能用到32位的运算,就是说不能把x,y转换成32位算好再转换回来,这
: 该怎么计算?有谁知道这个怎么办吗?显然,查表的方法也是不允许的(内存的占用必须是

a****l
发帖数: 8211
4
this is a very good solution. thanks.

【在 p***o 的大作中提到】
: y = 1.5x = x+x/2 = x+(x>>1)
: 依此类推,多少都行。

1 (共1页)
进入Programming版参与讨论
相关主题
问一个在C里面转换十六进制的问题Matlab 中怎样设置坐标轴刻度的精度
[转载] Re: 问个土问题吧什么程序可以把中文转换成unicode ?
Another question什么方法能把matlab文件转换成c并且执行这个转换后的c不依赖于matlab
little endian vs big endian请教C的类型转换问题
怎样将array^转换成string?面试题 -算法?
unsigned 8bit integer转换成signed 16bit应该是什么结果?请教:Map reduce到底是什么啊 (转载)
有人发过的一个面试题请教一个算法问题 (转载)
FLG面试题,压缩整数求集合包含,最快的算法是什么?
相关话题的讨论汇总
话题: 整数话题: 范围话题: 算法话题: 线性话题: 转换