6 ms·
A deeper introduction to Unix DC
- arexxbifs 6y agoRelated fun fact: bc is a dc preprocessor[0]. [0] https://en.wikipedia.org/wiki/Bc_(programming_language)#History https://en.wikipedia.org/wiki/Bc_(programming_language)#Hist...
- Hitton 6y agoFunny. Despite being long time Linux user this is the first time I remember hearing about dc. I only knew bc.
- m463 6y agoI have a way of looking at this. More people are familiar with apples than okra. (there's a reason for that)
- 082349872349872 6y ago6581840dnP
- kps 6y ago156 is unimplemented Is that a gnuism?
- 082349872349872 6y agoYes, sorry. Try: 6582352 dpP (at least we now know the error is old enough to be in octal)
- c0l0 6y agodc is worth having installed because of this CLI gem alone: echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq" | dc I've never tried to understand what's really going on to produce the result, but also wouldn't really know where to start - maybe someone in HN's audience can enlighten me? :)
- em500 6y agodc and bc are standard POSIX utils (and also part of busybox for embedded systems) so for most unix-like systems they're installed by default unless you take active measures to exclude them.
- deleted 6y ago[deleted]
- c0l0 6y agoPOSIX.1-2017 describes the `dc` program as "excluded" from the standard; check https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xcu_chap04.html https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xcu... for details. Many GNU/Linux distros (at least Debian and RHEL) install neither `dc` nor `bc` by default, afaik.
- em500 6y agoI stand corrected, only bc is included in POSIX.
- akira2501 6y agoGentoo doesn't include it in the common 'stage3' tarball, either. Which is annoying because it's actually required to compile the linux kernel.
- yjftsjthsd-h 6y ago> Many GNU/Linux distros (at least Debian and RHEL) install neither `dc` nor `bc` by default, afaik. Yeah, I recently wrote a script that used bc and immediately discovered that it didn't work on at least Arch Linux (and I think others, although I only seem to have added it to the Arch ansible config...); conveniently, I only needed the most trivial of calculations, so I just shifted to awk, which has better default availability.
- kps 6y agoecho '1033333377708482P' | dc produces the same output using Unix dc but not in the GNU near-clone. (To understand why, you have to R the P as well as the M.)
- azizsaya 6y agoAah! command I encounter and ignore when I mistype cd
- yjftsjthsd-h 6y agoAt least it's not sl ;)
- staycoolboy 6y agoI love reading examples of these "great-great-grandparent" applications hidden in /bin. I've used dc in shell scripts for years, but for the simplest of simple computations (e.g., automating FDISK partitioning and doing sector math). Had no idea it could do this. TIL this and a cool CSS trick.
- seryoiupfurds 6y ago[Monte Carlo approximation of Pi. Registers: u - routine : execute i if sum of squares less than 1 i - routine : increment register x z - routine : iterator - execute u while n > m++ r - routine : RANDU PRNG m - variable: number of samples x - variable: number of samples inside circle s - variable: seed for r k - variable: scale for division n - variable: number of iterations (user input) ]c [lrx 2^ lrx 2^ + 1>i]su [lx 1+ sx]si [lu x lm 1+ d sm ln>z]sz [0k ls 65539 * 2 31^ % d ss lkk 2 31 ^ /]sr ? sn 5dksk 1 ss lzx lx lm / 4* p $ dc pi.dc 100000 3.13372