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. dc
Kullanımın temel bir örneği :
echo '3 4 * p' | dc
Nerede p
hesaplamanı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 bc
kullanım örneği :
echo '3 * 4' | bc
bc
POSIX 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). dc
Yine 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 +p
akışa bir a eklemelisiniz, örneğin:
{ gen_nums; echo +p } | dc
İle Ama bc
biz 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 bc
gösterimini dc
yazdıran ve içine yerleştiren bir ön uç araçtı dc
. FreeBSD'de hala eko '3 * 4' notasyonuna göre derleyebileceğiniz bir -c
bayrak var. bc` eşittir . Bkz linux.die.net/man/1/bc ve freebsd.org/cgi/man.cgi?query=bc&sektion=1bc
dc
. For example
echo '3 * 4' | bc -c | dc
dc
kullanıyorsun? Ubuntu 14.04 ve OS X'de, +
operatör her zaman istiflemenin tam iki değeri üzerinde çalışır
bc -c
garip ve farklı bir şeyler yapar (ve -c
bayrak 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 6
tek başına bir hat üzerinde üretecekti . Ancak şunu dc
sö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"
dc
hesap makinesi ise bc
gerç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ü? "
dc
hep HP ters cila notasyonu hesap kullandım ters cila notasyonu hesap makinesi olmak ve o zamandan beri ben aslında kullanmayı tercih dc
etmek bc
ama 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.
bc
Bir oldu dil o yapılan anlamda dc
daha güçlüydü değil - insan dostu. Bugünlerde uygulamalar kütüphanelerini paylaşan, ancak bc
bir çağrıldı dili ve dc
bir hesap makinesi çünkü dc
matematik yaptım ve bc
matematik konuştu - için dc
. İşte daha eski bir man
sayfa : [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.
dc
Ayrı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.
expr
Komut satırında ve komut dosyalarında basit hesaplamalar için çok sık kullanıyorum .