📓 Archive

  • Pricing
  • Chess
  • Syntax
  • BC

    FGJ: Create:2024/05/15 Update: (2025-02-12)

    • Intro(BC | basic calculator) #

      • 保留位数 #

        echo 'scale=3; 10 / 3' | bc
        echo 'scale=5; 820 / (480 + 90)' | bc

      • 进制转换 #

        Caution

        1).: 特别需要注意 ibase,obase,以及值之间的联系,不然会出现意想不到的结果。如下图: 参见
        简而言之,就是在进制转换的时候,不管ibaseobase哪一个在前,都要以前面使用的进制为主,对后面的值以前面的进制进行转换。举例如下:
        在2到八进制中,可以写成ibase=2;obase=1000;,或者obase=8;ibase=2;,对于第一个,(2,1000),1000 为二进制的值 8,第二个(8,2),2 为八进制中的值 2

        2).: 十六进制中的字母需要大写。小写就是: (standard_in) 1: syntax error

        二进制-八进制
        echo 'ibase=2;obase=1000; 11010111' | bc ,output: 327
        echo 'obase=8;ibase=2; 11010111' | bc ,output: 327

        二进制-十进制
        echo 'ibase=2;obase=1010; 11010111' | bc ,output: 215
        echo 'obase=10;ibase=2; 11010111' | bc ,output: 215

        二进制-十六进制
        echo 'ibase=2;obase=10000; 11010111' | bc ,output: D7
        echo '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 #


    comments powered by Disqus