Yanıtlar:
dcçok eski bir araç ve biraz daha eski bc. Wikipedia sayfasını alıntı yapmak için :
C programlama dilinin icatını bile başlatan en eski Unix uygulamalarından biridir; Bu bağbozumu diğer yardımcı programları gibi, güçlü bir dizi özellik ancak son derece veciz bir sözdizimi vardır.
Sözdizimi, temel olarak argümanların (yani sayıların) önce operatör tarafından geldiği anlamına gelen bir ters cila gösterimidir. dcKullanımın temel bir örneği :
echo '3 4 * p' | dc
Nerede phesaplamanın sonucu yazdırmak için gereklidir. bcÖte yandan, daha bilinen bir ek gösterimi kullanır ve bu nedenle kullanımı daha sezgiseldir. İşte bir bckullanım örneği :
echo '3 * 4' | bc
bcPOSIX tarafından standartlaştırılmıştır ve bu yüzden muhtemelen ikisi arasında en taşınabilir olanıdır (en azından modern sistemlerde). Manuel hesap makinesi işi yapıyorsanız, o zaman kesinlikle bir seçimdir (biraz mazoşist olmadıkça). dcYine de kullanımlarına sahip olabilir, burada ters cila gösterimi kullanışlı bir durumdur. Toplamak istediğiniz sayı akışını çıkaran bir programınız olduğunu hayal edin, örneğin:
23
7
90
74
29
Bunu yapmak dcçok basittir (en azından her operatörün ikiden fazla sayı alabildiği modern uygulamalarda), çünkü yalnızca +pakışa bir a eklemelisiniz, örneğin:
{ gen_nums; echo +p } | dc
İle Ama bcbiz sadece koymak gerekmez beri daha karmaşıktır + arasında yapmak da her sayı ve her şeyin aynı hat üzerindedir yapmak, ama emin sonunda bir satır vardır:
{ gen_nums | sed '$ !s/$/+/' | tr -d '\n'; echo; } | bc
gen_numsÖrneğini kullanarak çok karmaşık bir hale getirdiniz bc. Basitleştirilebilir:gen_nums | paste -sd+ | bc
bc, sadece sonucu almak için bcgösterimini dcyazdıran ve içine yerleştiren bir ön uç araçtı dc. FreeBSD'de hala eko '3 * 4' notasyonuna göre derleyebileceğiniz bir -cbayrak var. bc` eşittir . Bkz linux.die.net/man/1/bc ve freebsd.org/cgi/man.cgi?query=bc&sektion=1bcdc. For example echo '3 * 4' | bc -c | dc
dckullanıyorsun? Ubuntu 14.04 ve OS X'de, +operatör her zaman istiflemenin tam iki değeri üzerinde çalışır
bc -cgarip ve farklı bir şeyler yapar (ve -cbayrak belgesizdir). Eğer onu boruya sokmaya çalışırsam dc, bir sürü hata alıyorum (ve boruya takılmayan çıktı dcçok şifreli @iK3:K4:*W@r\n@i).
İkisi arasındaki temel fark dc, ters Polonya gösterimini kullanmasıdır . Bir çıktı üretmek için bile açık komutlar gerektirir.
Şöyle iki tam sayı ekleyebilirsiniz bc:
bc <<< "2+4"
ve 6tek başına bir hat üzerinde üretecekti . Ancak şunu dcsöylemelisin:
dc <<< "2 4 +p"
Kullanarak çok eğlenceli şeyler de yapabilirsiniz dc, örneğin üretmek için buradaki cevaba bakın.
Hello World!
kullanarak dc.
dc <<< "8 9 * P101P108P108P111P4 8 * P81 6 + P111P114P108P100P33P"
dchesap makinesi ise bcgerçek bir dildir. Adam sayfalarına bakın.
M.Ödc, sınırsız hassasiyetli aritmetiği destekleyen bir ters cila masası hesaplayıcısıdır. Ayrıca makroları tanımlamanızı ve çağırmanızı sağlar. Normalde dc standart girişten okur; eğer herhangi bir komut argümanı verildiyse, bunlar dosya isimleridir ve dc standart girdiden okumadan önce dosyaların içeriğini okur ve yürütür. Tüm normal çıktı standart çıktıya; tüm hata çıktıları standart hatadır.
bc, isteğe bağlı hassas sayıları, ifadelerin etkileşimli olarak yürütülmesini destekleyen bir dildir. C programlama dilinin sözdiziminde bazı benzerlikler vardır. Standart bir matematik kütüphanesi komut satırı seçeneği ile kullanılabilir. İstenirse, matematik kitaplığı herhangi bir dosyayı işlemeden önce tanımlanır. bc, komut satırında listelenen tüm dosyaların kodlarını listelenen sırayla işleyerek başlar. Tüm dosyalar işlendikten sonra, bc standart girdiden okur. Tüm kod okunduğu gibi yürütülür. (Bir dosya işlemciyi durdurmak için bir komut içeriyorsa, bc asla standart girdiden okumaz.)
Bu gerçekten nihayetinde matematiksel olarak yapmak istediğiniz şeye bağlıdır. Bazı işlemler kullanmak mümkün değildir dc. Her iki yılda birkaç diğer komut satırı hesap makinesi araçlarına ek olarak kullandım. Bazı ek örnekler için bkz. " Komut satırı ifadesi çözücü? "
dchep HP ters cila notasyonu hesap kullandım ters cila notasyonu hesap makinesi olmak ve o zamandan beri ben aslında kullanmayı tercih dcetmek bcama onlar karmaşık bir matematiksel hesaplama gerçekleştirmek için gereken her ikisi hala kullanılan zaman konum söyleyebilirim. Onları b / w base 10 ile base 16 ve base 2'ye dönüştürmek için sık sık kullanırım. Fakat bunları bir AWK betiğinden de tablo halinde veri sütunlarına yerleştirmek için kullandım.
bcBir oldu dil o yapılan anlamda dcdaha güçlüydü değil - insan dostu. Bugünlerde uygulamalar kütüphanelerini paylaşan, ancak bcbir çağrıldı dili ve dcbir hesap makinesi çünkü dcmatematik yaptım ve bcmatematik konuştu - için dc. İşte daha eski bir mansayfa : [1] adı verilen bir dil BC, üst seviye dillerde yazılmış programları kabul eden ve DC tarafından yorumlanan çıktıları derleyen bir dil geliştirildi. Aşağıda açıklanan komutların bazıları derleyici arayüzü için tasarlanmıştır ve bir insan kullanıcısının manipüle etmesi kolay değildir.
dcAyrıca bir dil olduğunu iddia ediyorum . örneğin codegolf.stackexchange.com/a/47921/11259
Alçakgönüllü görüşüme göre ve olabildiğince az sözle, GNU dc GNU bc'den 3 şekilde ayrılır:
1) bc'nin matematik kütüphanesi kaygı duymuyorsa, basit aritmetik işlemi yaparken, temel maddelere daha fazla konsantre olmak ve dikkat dağıtıcı şeylerden kaçınmak için olabildiğince fazla tuşa basılması (Jan Łukasiewicz’in sözlerinde: parantezsiz gösterim).
2) Microsoft Windows 7'nin komut satırında, GNU dc, GNU bc'den (~ 360K) daha az bellek harcar (~ 320K).
3) GNU dc'de GNU bc'de olduğundan daha fazla granüler kontrol, örneğin yığın ve yazma komutları GNU bc'de yoktur.
Her ikisi için sürüm 1.07.1 win32 https://embedeo.org/ws/command_line/bc_dc_calculator_windows/ adresindedir.
exprKomut satırında ve komut dosyalarında basit hesaplamalar için çok sık kullanıyorum .