linux程序设计计算器,Linux下的dc计算器

参数:

dc有三个参数:输入进制 输出进制与precision(精度)。precision永远被作为10进制来看。

i : 弹出栈顶w1并将其作为输入进制

o : 弹出栈顶w1并将其作为输出进制

k : 弹出栈顶w1并将其作为precision

I : 将输入进制压栈

O : 将输出进制压栈

K : 将precision压栈

字符串:

dc寄存器可以存放字符串,字符串可以被打印或被作为dc命令去执行

[characters] : 将字符串characters压栈。characters中可以包含任何字符,除了[]需两两匹配

a : 若栈顶w1是数字,则将栈顶修改为(char)((int)(w1)%256),否则将w1首字母入栈

x : 若栈顶w1是数字,则什么都不做,否则将其弹出并将w1作为命令交给dc执行

>r : 依次弹出w1与w2,若w1>w2则执行r寄存器中的命令

!>r : 依次弹出w1与w2,若w1<=w2则执行r寄存器中的命令

!=w2则执行r寄存器中的命令

=r : 依次弹出w1与w2,若w1==w2则执行r寄存器中的命令

!=r : 依次弹出w1与w2,若w1!=w2则执行r寄存器中的命令

? : 从标准输入读入一条命令并将其交给dc执行

q : 终止当前dc与当前dc的调用dc

Q : 弹出栈顶w1,终止w1层dc。当w1大于当前dc层数时会报错,因此Q不会使主dc退出

状态查询:

Z : 弹出栈顶w1,将w1长度压栈

X : 弹出栈顶w1,若w1为数字,则将w1小数位数压栈,否则将0压栈

z : 将当前栈深度压栈

其他:

! : 将!之后的部分作为命令交给sh执行。若命令以'>' '='开头,则需在!后加上空格

# : 将#之后的部分作为注释

:r : 依次弹出w1与w2,r[w1]=w2

;r : 弹出栈顶w1,将r[w1]压栈

真正的精髓好像是通过x与opr进行的流程控制,等着再看吧。0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值