BC
Intro(bc) #
保留位数 #
echo 'scale=3; 10 / 3' | bc
echo 'scale=5; 820 / (480 + 90)' | bc
进制转换 #
Caution
1).
: 特别需要注意 ibase,obase,以及值之间的联系,不然会出现意想不到的结果。如下图: 参见
简而言之,就是在进制转换的时候,不管ibase
、obase
哪一个在前,都要以前面使用的进制为主,对后面的值以前面的进制进行转换。举例如下:
在2到八进制中,可以写成ibase=2;obase=1000;
,或者obase=8;ibase=2;
,对于第一个,(2,1000),1000 为二进制的值 8,第二个(8,2),2 为八进制中的值 22).
: 十六进制中的字母需要大写。小写就是: (standard_in) 1: syntax error。二进制-八进制
echo 'ibase=2;obase=1000; 11010111' | bc
,output: 327echo 'obase=8;ibase=2; 11010111' | bc
,output: 327
二进制-十进制echo 'ibase=2;obase=1010; 11010111' | bc
,output: 215echo 'obase=10;ibase=2; 11010111' | bc
,output: 215
二进制-十六进制echo 'ibase=2;obase=10000; 11010111' | bc
,output: D7echo 'obase=16;ibase=2; 11010111' | bc
,output: D7
八进制-二进制echo 'ibase=8;obase=2; 327' | bc
,output: 11010111
八进制-十进制echo 'ibase=8;obase=12; 327' | bc
,output: 215
八进制-十六进制echo 'ibase=8;obase=20; 327' | bc
,output: D7
十六进制-二进制echo 'ibase=16;obase=2; D7' | bc
,output: 11010111
十六进制-八进制echo 'ibase=16;obase=8; D7' | bc
,output: 327
十六进制-十进制echo 'ibase=16;obase=A; D7' | bc
,output: 215
Reference #