歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Linux命令之bc - 浮點計算器、進制轉換

用途說明

Bash內置了對整數四則運算的支持,但是並不支持浮點運算,而bc命令可以很方便的進行浮點運算,當然整數運算也不再話下。手冊頁上說bc是An arbitrary precision calculator language,即一個任意精度的計算語言,注意是一種語言,它提供了一些語法結構,比如條件判斷、循環等,可以說是很強大的,但是我在實際中還沒有找到需要這個用途的場合 。另外一個用途就是用來進行進制轉換。

常用參數

一般情況下,我們使用不帶任何參數的bc命令。

bc

如果需要bc不輸出提示信息,可以加上-q參數:

bc -q

如果要使用強大的數學庫,比如計算三角函數,需要加上-l參數:

bc -l

因為bc本身是一個命令解釋器,要退出它只要直接輸入quit回車或者按Ctrl+D終止。

使用示例

示例一 命令行方式使用bc

[root@localhost CentOS39]# bc 
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
3+4 
7
3-4 
-1
3*4 
12
3/4 
0
scale=2;3/4      # 保留小數點精度只對除法、取余、乘冪有效
.75 
3/4 
.75
3%4 
0
scale=0 
3%4 
3
3^4 
81

Ctrl+D 
[root@localhost centos39]#

示例二 通過管道使用bc來計算

[root@localhost centos39]# echo 3 * 4 | bc 
(standard_in) 1: parse error
[root@localhost centos39]# echo "3 * 4" | bc 
12
[root@localhost centos39]# echo "scale=7; 355/113" | bc 
3.1415929
[root@localhost centos39]#

示例三 進制轉換

[root@rhel55 ~]# echo "ibase=16; FFFF" | bc
65535

[root@rhel55 ~]# echo "obase=16; 1000" | bc
3E8
[root@rhel55 ~]#



我們用到 bc的ibase和obase方法。 

  ibase是輸入數字的進制,而obase就是輸出數字的進制了。很好記,i是input,o是output。 

  如果用一條命令來轉數字,可以用echo命令和管道結合bc。如下: 

  10進制轉2進制: 

  $ echo "obase=2;ibase=10;100" | bc1100100 

  10進制轉16進制: 

  $ echo "obase=16;ibase=10;100" | bc64 

  16進制轉10進制: 

  $ echo "ibase=16;obase=2;F1" | bc11110001 

  注意,16進制數字的F要大寫,如果小寫結果是不對的。像最上面沒有指定的時候,默認是10進制。

Copyright © Linux教程網 All Rights Reserved