免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: cjaizss
打印 上一主题 下一主题

dc计算器简介 [复制链接]

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
21 [报告]
发表于 2011-04-16 22:59 |只看该作者
?
问号命令,这是对交互式的支持,可以从标准输入输入一个字符串然后执行,如果输入不是字符串而是数字,则直接进主栈
GNU的info文档里在这里写的是终端,但我发现在这里dc程序(至少我的版本)不认是否终端,只要是标准输入就可以。
$ cat >1
?
$ echo 100k2vp|dc -f 1
1.4142135623730950488016887242096980785696718753769480731766797379907\
324784621070388503875343276415727

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
22 [报告]
发表于 2011-04-16 23:04 |只看该作者
a 这是一个GNU的扩展,把主栈栈定出栈,如果是字符串取字符串首字母进栈,如果是数,则除以256所对应的字符进主栈

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
23 [报告]
发表于 2011-04-16 23:08 |只看该作者
正是因为可以不断的去运行寄存器的字符串,所以我们才可以去实现递归。
那么这里的
>R等6个命令就是对递归最大的支持
我们试想如果这里>R中
寄存器R当前的字符串中也嵌套了至少一个这6个命令中的一个的话,那么递归就来了。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
24 [报告]
发表于 2011-04-16 23:20 |只看该作者
于是,最后两个命令,我就可以说明一下了。
是关于程序或者子程序退出的命令
q与Q 其完整意义我需要举例子说明一下

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
25 [报告]
发表于 2011-04-16 23:30 |只看该作者
对于前面寄存器的结构,
我来用程序证明一下
$ cat test.dc
100 sr #a=100
1 0 :r #a[0]=1
2 1 :r #a[1]=2
3 2 :r #a[2]=3
4   Sr #a<=4
5 0 :r #a[0]=5
6 1 :r #a[1]=6
7 2 :r #a[2]=7
lr     #a
p
lr     #a
p
0   ;r #a[0]
p
9 0 :r #a[0]=9
1   ;r #a[1]
p
2   ;r #a[2]
p
0   ;r #a[0]
p
Lr     #a=>
p
0   ;r #a[0]
p
1   ;r #a[1]
p
2   ;r #a[2]
p
Lr     #a=>
p

$ dc -f test.dc
4
4
5
6
7
9
4
1
2
3
100

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
26 [报告]
发表于 2011-04-17 01:20 |只看该作者
本帖最后由 yinyuemi 于 2011-04-17 10:52 编辑
>R
!>R
b,我想这六个关系我就不用一一说明了,!>就是小于等于的意思)
则执行寄存器R(R也可以是别的寄存器 ...
cjaizss 发表于 2011-04-16 22:53


先顶版主!!


试着解读:[[test]p] sr 1 2 >r

请版主指正:
  1. [[test]p] #进主栈, dc识别为字符串 [test]p
  2. sr # [test]p 出栈 存入 r 栈
  3. 1 # 入主栈顶
  4. 2 # 1 下移,2入主栈顶
  5. # '>'之前,2,1 出主栈,
  6. > # 判断大小 2>1
  7. r # 判断正确执行 r栈的内容 [test]p
  8. [test]p # 同样,dc识别为字符串 test, 并打印。
复制代码

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
27 [报告]
发表于 2011-04-17 09:19 |只看该作者
先顶版主!!


试着解读:[[test]p] sr 1 2 >r

请版主指正:
yinyuemi 发表于 2011-04-17 01:20


在之前要说明2,1出栈

    > # 判断大小 2>1

r # 判断正确执行 r栈的内容 [test]p

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
28 [报告]
发表于 2011-04-17 09:47 |只看该作者
回复 27# cjaizss


    多谢版主指点!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
29 [报告]
发表于 2011-04-17 11:02 |只看该作者
感兴趣的是bc,曾经翻译大部分关于bc的info文档。

论坛徽章:
0
30 [报告]
发表于 2011-04-17 20:24 |只看该作者
感觉bc更直观一些.dc好难用
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP