zoukankan      html  css  js  c++  java
  • Linux工具之bc计算器进制的转换

    bc是Linux下的命令行式的计算器。 题目虽然叫任意进制,但是因为bc的限制,输入进制是2~16范围;输出进制是2~999范围。这与常见计算器的进制范围是一致的,比如windows计算器最高也只能处理16进制输入数据。

    一、bc计算器的使用

    1. bc计算器默认输入、输出都为10进制。
    [root@centos6 ~]# bc                                  #打开bc计算器
    bc 1.06.95
    Copyright 2006 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    88*123                                                #计算 88*123
    10824                                                 #计算器输出结果
    #
    #
    123+65*2-100                                          #计算123+65*2-100
    153                                                   #计算器输出结果
    
    1. bc计算器进制转换
    [root@centos6 ~]# bc
    obase=16                                        #设置输出为16进制
    ibase=2                                         #设置输入为2进制
    1111111111111100011010                          #输入2进制数
    3FFF1A                                          #转换为16进制
    

    二、通过管道运算与进制转换

    1. 这里使用的管道可以简单的理解为将echo "1+2"发送给 bc计算器
    [root@centos6 ~]# echo "1+1" | bc               #将1+1发送给bc计算器
    2
    [root@centos6 ~]#
    [root@centos6 ~]# echo "5*10-1" | bc            #将5*10-1发送给bc计算器
    49
    
    1. 双引号、单引号、反单引号的使用
    [root@centos6 ~]# echo "123+123" | bc
    246
    [root@centos6 ~]# echo '111+111'
    111+111
    [root@centos6 ~]# echo '111+111' | bc
    222
    [root@centos6 ~]# echo `111+111` | bc   
    -bash: 111+111: command not found
    [root@centos6 ~]# echo "`echo 123`+10" | bc
    133
    

    三、使用中遇到的问题

    1. 先设置obase在设置ibase,计算器正常。
    [root@centos6 ~]# bc
    bc 1.06.95
    Copyright 2006 Free Software Foundation,
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    obase=16
    ibase=2
    1111111111111100011010
    3FFF1A
    
    1. 先设置ibase在设置obase,计算器输出不正常。
    [root@centos6 ~]# bc
    bc 1.06.95
    Copyright  2006 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    ibase=2
    obase=16
    1111111111111100011010
    21220002012002
    
    1. 先设置obase在设置ibase,计算输出正常
      修改obase后计算输出不正常
    [root@centos6 ~]# bc
    bc 1.06.95
    Copyright  2006 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    obase=16
    ibase=2
    1111111111111100011010
    3FFF1A
    obase=10
    1111111111111100011010
    1111111111111100011010
    
    1. 先设置obase在设置ibase正常,ibase与obase互换输出不正常。
    [root@centos6 ~]# bc
    bc 1.06.95
    Copyright  2006 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    obase=16
    ibase=2
    1111111111111100011010
    3FFF1A
    obase=2
    ibase=16
    3FFF1A
    1011010101
    
    1. 使用管道时同样只能先给obase赋值
    [root@centos6 ~]# echo "ibase=2;obase=16;11101" | bc
    1002
    [root@centos6 ~]# echo "obase=16;ibase=2;11101" | bc
    1D
    

    结论?????

    在bc计算器中,obase与ibase的赋值有先后顺序。
    且在计算过程中ibase与obase只能赋值一次。

  • 相关阅读:
    UVa532 Dungeon Master 三维迷宫
    6.4.2 走迷宫
    UVA 439 Knight Moves
    UVa784 Maze Exploration
    UVa657 The die is cast
    UVa572 Oil Deposits DFS求连通块
    UVa10562 Undraw the Trees
    UVa839 Not so Mobile
    327
    UVa699 The Falling Leaves
  • 原文地址:https://www.cnblogs.com/aubin/p/7203304.html
Copyright © 2011-2022 走看看