亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12345下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 21216 | 回復(fù): 40
打印 上一主題 下一主題

dc計(jì)算器簡(jiǎn)介 [復(fù)制鏈接]

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-04-16 18:29 |只看該作者 |倒序?yàn)g覽
本帖最后由 cjaizss 于 2011-04-17 09:20 編輯

雖然沒(méi)想明白這個(gè)東西有什么實(shí)際用處,bc完全可以用一種更可觀的方式來(lái)代替dc.
但用來(lái)做做智力體操,還是有點(diǎn)意思的。
簡(jiǎn)介自四樓起

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
2 [報(bào)告]
發(fā)表于 2011-04-16 18:30 |只看該作者
不過(guò)想來(lái)也還是有實(shí)際用處,用來(lái)寫(xiě)腳本,有的時(shí)候產(chǎn)生逆波蘭更容易一些

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
3 [報(bào)告]
發(fā)表于 2011-04-16 18:42 |只看該作者
好,偶寫(xiě)一個(gè)簡(jiǎn)單的dc教材吧。

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
4 [報(bào)告]
發(fā)表于 2011-04-16 18:53 |只看該作者
好,偶寫(xiě)一個(gè)簡(jiǎn)單的dc教材吧。
cjaizss 發(fā)表于 2011-04-16 18:42

首先,dc是一個(gè)計(jì)算器。但其操作習(xí)慣不同于我們常用的中綴式,而采用逆波蘭式的方法。
所謂中綴式,即操作符穿插于操作數(shù)之間。而逆波蘭式則不是,操作符在操作數(shù)之后,其好處在于無(wú)需復(fù)雜的語(yǔ)法,無(wú)需操作符優(yōu)先級(jí)。
逆波蘭式的計(jì)算是要先建一個(gè)棧,遇到操作數(shù)進(jìn)棧,遇到操作符,比如是n元的操作符,則從棧定出棧n個(gè)元,計(jì)算完了再把結(jié)果進(jìn)棧。
比如
(1+2)*4的逆波蘭式為
1 2 + 4 *
計(jì)算過(guò)程為
初始:棧空
--棧頂--
--棧底--

1進(jìn)棧

--棧頂--
1
--棧底--

2進(jìn)棧
--棧頂--
2
1
--棧底--

+操作符,二元操作,
棧頂兩個(gè)元2,1出棧,
--棧頂--
--棧底--
運(yùn)算得到3,進(jìn)棧
--棧頂--
3
--棧底--

4進(jìn)棧
--棧頂--
4
3
--棧底--

*操作符,二元操作,
棧頂兩個(gè)元4,3出棧,
--棧頂--
--棧底--

運(yùn)算得到12,進(jìn)棧
--棧頂--
12
--棧底--

論壇徽章:
7
榮譽(yù)版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07獅子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10雙子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
5 [報(bào)告]
發(fā)表于 2011-04-16 19:03 |只看該作者
http://72891.cn/thread-316197-1-1.html
本版有幾個(gè),這是我有印象的一個(gè),供參考。

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
6 [報(bào)告]
發(fā)表于 2011-04-16 19:25 |只看該作者
首先,dc是一個(gè)計(jì)算器。但其操作習(xí)慣不同于我們常用的中綴式,而采用逆波蘭式的方法。
所謂中綴式,即操 ...
cjaizss 發(fā)表于 2011-04-16 18:53



    dc就維系著這樣的一個(gè)棧,我們可以稱為主棧(實(shí)際上,dc可以維系很多很多這樣的嶄,可只有這一個(gè)棧直接用于運(yùn)算,所以我們可以稱為主棧,其他可以用來(lái)存儲(chǔ))。
   我們來(lái)運(yùn)行比如
   echo '1 2+p' | dc
    可以打印出3,相鄰兩個(gè)進(jìn)棧的操作數(shù)用空格或者空行隔開(kāi),p是dc的命令,代表打印棧頂
   當(dāng)然我們也可以運(yùn)行更復(fù)雜的
   echo '1 2+4*p' | dc
     12
   如果僅僅是這樣,dc看上去就太簡(jiǎn)單了。
   dc的強(qiáng)大之處是在于它可以用于編程。
btw:echo '2p3p[dl!d2+s!%0=@l!l^!<#]s#[s/0ds^]s@[p]s&[ddvs^3s!l#x0<&2+l.x]ds.x'|dc
很強(qiáng)

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
7 [報(bào)告]
發(fā)表于 2011-04-16 19:50 |只看該作者
dc就維系著這樣的一個(gè)棧,我們可以稱為主棧(實(shí)際上,dc可以維系很多很多這樣的嶄,可只有這一個(gè) ...
cjaizss 發(fā)表于 2011-04-16 19:25



    最先介紹的還是運(yùn)算符:
    +二元運(yùn)算, 彈出棧頂兩個(gè)元,計(jì)算和,再壓棧
    - 二元運(yùn)算,彈出棧頂元a,再?gòu)棾鰲m斣猙,計(jì)算b-a,壓棧
    *二元運(yùn)算,彈出棧頂兩個(gè)元,計(jì)算積,再壓棧
    /二元運(yùn)算,彈出棧頂元a,再?gòu)棾鰲m斣猙,計(jì)算b/a,保留預(yù)定的位數(shù)的有效小數(shù),壓棧
  %二元運(yùn)算,彈出棧頂元a,再?gòu)棾鰲m斣猙,計(jì)算b%a(余數(shù)),壓棧
  ~二元運(yùn)算,同時(shí)計(jì)算余數(shù)和商(GNU擴(kuò)展)
   ^二元運(yùn)算,乘方計(jì)算彈出棧頂元a,再?gòu)棾鰲m斣猙,計(jì)算a的b次方壓棧,計(jì)算時(shí),b忽略小數(shù)部分
  v一元運(yùn)算,求平方根,彈出棧頂元a,計(jì)算平方根,保留預(yù)定的位數(shù)的有效小數(shù),壓棧
注:有效小數(shù)保留預(yù)定位數(shù),后面有介紹。

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
8 [報(bào)告]
發(fā)表于 2011-04-16 20:16 |只看該作者
用于打印的命令:
p  打印棧頂信息,并換行
n  打印棧頂信息,不換行,并且棧頂出棧(GNU擴(kuò)展)
P  打印棧頂,不換行,并且棧頂出棧。打印方式本應(yīng)與GNU擴(kuò)展的n一致,但對(duì)于數(shù)字則有GNU擴(kuò)展,打印出其整數(shù)部分的絕對(duì)值除以256所得到的字符。
f  打印出整個(gè)棧
這里提供了dc程序本身的所有輸出方式(除了還有一個(gè)!命令可以用來(lái)執(zhí)行外部命令)

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
9 [報(bào)告]
發(fā)表于 2011-04-16 20:30 |只看該作者
之后的一些命令與介紹就與實(shí)現(xiàn)復(fù)雜程序的結(jié)構(gòu)有關(guān)系了。
c  清空棧
d 將棧頂復(fù)制一份進(jìn)棧,舉個(gè)例子,比如2d*就是代表2的乘方了
r  將棧最頂上兩個(gè)元位置交換(GNU擴(kuò)展)

但以下會(huì)介紹寄存器,d,r都可以用的別的方式實(shí)現(xiàn),算語(yǔ)法糖了
比如d
如果某個(gè)寄存器,比如名字叫a,在程序中不作它用,那么
salala就可以實(shí)現(xiàn)d , sa是先將棧頂出棧,放在寄存器a,然后連續(xù)從a讀兩次進(jìn)棧
如果某兩個(gè)寄存器不作它用,比如a和b,那么
sasblalb就可以實(shí)現(xiàn)r

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
10 [報(bào)告]
發(fā)表于 2011-04-16 21:16 |只看該作者
本帖最后由 cjaizss 于 2011-04-16 21:36 編輯

該輪到寄存器出場(chǎng)了
所有的字符都可以做為獨(dú)立的寄存器名稱
a,b,c,d,1,2,3,4,A,B,C...
甚至,#@!%^&*()-+='"][{}||.~`.都可以
所以有很多很多寄存器可供使用,一共可以有256個(gè)之多,足夠用了。
\xa0,\xa1...,\xff都是不同的寄存器
還記得d命令復(fù)制棧頂嗎?f打印整個(gè)主棧?以下相當(dāng)于1001 d f,使用了寄存器\xff
echo -e '1001 s\xff l\xff l\xff f' | dc
1001
1001
現(xiàn)在以寄存器r來(lái)代表
首先,我們要清楚,寄存器是一個(gè)棧結(jié)構(gòu),和主棧是一樣的,只是它不能直接用于計(jì)算而已,是用于存儲(chǔ)的,初始的時(shí)候也是空棧,
sr 將主棧棧頂出棧,如果寄存器r棧為空,則將剛才出主棧的值入r棧,否則修改r棧頂為剛才出主棧的值
lr 將寄存器r棧頂?shù)闹等胫鳁,為空則會(huì)打印錯(cuò)誤信息(說(shuō)到這里,其實(shí)dc里面所有操作棧出錯(cuò)都會(huì)打印錯(cuò)誤信息,并跳過(guò))
Sr 將主棧棧頂出棧,r棧進(jìn)棧
Lr r棧出棧,主棧進(jìn)棧
要理解下面兩個(gè)命令,就要先明白寄存器棧的每一層都可以有一個(gè)使用數(shù)字下標(biāo)訪問(wèn)的數(shù)組
:r 主棧出棧兩次,先從主棧棧頂彈出一個(gè)值a,再?gòu)闹鳁m攺棾鲆粋(gè)值b,然后令r[a]=b
;r 主棧出棧,從主棧棧頂彈出一個(gè)值a,然后將r[a]進(jìn)主棧
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP