后缀表示法
2022-01-24 本文已影响0人
杰_6343
——函数式编程使用的也是后缀表示法
机械计算器的输入方式与普通的计算器不同,它是后缀表达式输入。例如3+2的后缀表达式为:32+。(1+2)×3的后缀表达式为:12+3×。1除以0的后缀表达式为:10/。学过堆栈的同学应该很容易理解吧(=・ω・=)
机械计算器的除法原理是被除数一直减除数,保证结果为非负数,减多少下商就是多少。比如说56÷7的商是56-7=49,49-7=42,42-7=35,35-7=28,28-7=21,21-7=14,14-7=7,7-7=0,0-7是负数,所以取0为余数,之前一共减了8次,所以商为8。其他除法算式最后可能会剩下余数。如果想继续精确后面的就要把余数拿去移位再做减法。由于除以零是减0的循环工作,比如56-0=56,56-0=56……所以会无限循环。
在这种计算器之前的那种手摇式机械计算器就是这样算乘除法的,还需要调倍率(21*12=21*1*10+21*2)也就是输入21,调10倍,正转一下,再调1倍,正转两下,除法还有一个“计数器”用来记录你反转了多少次