From 6003326d476ae5bb81261395724e85d8d686071d Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Fri, 7 Apr 2017 22:20:23 +0000 Subject: bc-1.07.1 --- FAQ | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'FAQ') diff --git a/FAQ b/FAQ index 32dd051..280b9ea 100644 --- a/FAQ +++ b/FAQ @@ -15,3 +15,26 @@ of the number of digits in the integer part. GMP floats have a "fixed, but arbitrary" mantissa and so multiplying two floats will end up dropping digits BC must calculate. +2) The code "ibase=16; obase=10; FF" outputs FF, not 255. Isn't this + a bug? + +No. ibase changed the input base at that point. The 10 is then in +base 16 and thus is the value 16. Therefore, both ibase and obase +are 16 (decimal). And FF (base 16) on input is printed as FF (base 16) +on output. So how can one get 255? First, single digit numbers are +not converted using ibase. So A is always 10 (decimal). The following +code will always work. "ibase=F+1; obase=A; FF" and that always prints +255. + +3) Why is the scale variable ignored on multiply? + +That is the way POSIX specifics multiply. Reread the documentation for +the multiply operation and see that multiply uses the scales of the +numbers multiplied to determine the scale of the result. + +4) bc's mod command is not working when I run with "bc -l". + +bc's mod (%) command works like integer remainder when scale is 0. +The -l flag sets scale to 20 and that chanes how a % b is computed. +Read the man page for exact details. + -- cgit v1.2.1