hpcalc 发表于 2013-8-29 22:56:42

HP计算器RPN输入 图解入门

本帖最后由 hpcalc 于 2013-8-29 23:08 编辑

在计算器上用RPN方式计算时,输入顺序同习惯的顺序不大一样。比如一般3加2,输入3+2;用rpn输入就成了 3   2   + ,原因是rpn把操作符放在所有操作数的最后。

rpn不仅能够节约一定的按键操作,可以看到每步计算结果,而且在编程方面也有其独特的优点。

下面是一个演示rpn输入例子,计算 1÷((1000+4+3)*2),实际计算时一般不如此输入,而是输入 1000 enter 4 + 3 + 2   1/x

rpn输入的数字全部进入计算器内部的堆栈,可以把堆栈想成一个盛大饼的盆子,每次输入的数字(大饼)都摞在前面的所有饼的上面,而且要取得时候最后放入的大饼被最先取出来。

只不过在HP计算器上,这个盆子是底朝天倒着放的,最新放入的一张饼永远被编号为1号(1:),如果又有新饼放入了,原来的一号饼的编号就成了2号(2:),依次类推。

上面图片从下向上演示了分别输入 1 enter    2 enter    3 enter    4 enter后的相应堆栈情况。。


输入1000,然后按enter(回车)。未按回车之前1000位于输入缓存中


按加号,计算器将1号堆栈的数1000和2号堆栈的数4取出来(取出后堆栈从上往下分别为 123 ,其中3变为了1号,但是这是计算器内部的中间步骤,并不显示在屏幕上),相加,然后将结果1004放入堆栈,变成如下图所示


再按加号,结果如下图


按乘号


按除号


得到结果

hpcalc 发表于 2013-8-29 23:16:08

本帖最后由 hpcalc 于 2013-8-29 23:18 编辑

下面输入 (1+X) / (1-X)

首先输入 1 enter X


然后输入加号,得到1+X。虽然刚才输入1000后没有按enter将1000压入1号堆栈,但是输入缓存中的数也是可以直接运算的,可以认为这是0号堆栈。就比如烙饼的手里拿着刚出锅的大饼,虽然没有放入盆子,但是有顾客要饼的话也可以直接给顾客。


然后再次输入1 enter X,这时刚才的运算结果1+X被压入了更深的堆栈备用。


输入减号


输入除号,得到结果。

airfox 发表于 2013-8-30 00:35:53

RPN确实是好东西,习惯了就会有依赖性。

hpcalc 发表于 2013-8-30 00:38:11

在线版的RPN计算器
页: [1]
查看完整版本: HP计算器RPN输入 图解入门