在Linux中使用計算器遇到的問題

進制轉換的時候出現了與理解不同的結果

Linux中的計算機大家或許都用過吧,那你們有沒有遇到過這樣的問題呢?

[root@centos7 ~]#bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty’.
ibase=16
obase=10
10
10

按照正常的理解ibase設置的是輸入的進制數,obase設置的是輸出進制數,16進制的10轉換成10進制應該是16啊,為什么上面的結果卻是10呢?很明顯的跟正確的結果不一樣,也就是說這樣她輸出的結果不對,這肯定不是計算器出毛病了,但是為什么它輸出的結果不對呢,于是我還試了試別的別進制轉換:

[root@centos7 ~]#bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty’.
ibase=16
obase=2
10
10000

上面的執行結果看看明顯是對的啊,那為什么我第一次16進制轉換成10進制的結果卻不對我們想要的結果呢?我問了問度娘,發現有人跟我遇到了同樣的問題,但是他的回答:把obase寫在前面ibase寫在后面,如果位置調換了就會出一系列問題,我趕緊試了一下:

[root@centos7 ~]#bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty’.
obase=10
ibase=16
10
16

哇~?說的果然是對的,你這樣寫還要前面的obase干嘛,不是多此一舉嗎?計算器默認的輸入輸出進制就是十進制??墒菫槭裁聪仍O置ibase=16在設置obase=10得到的結果就不是我們想要的答案呢?于是我又換了把obase的值改了一下,又試了一遍:

[root@centos7 ~]#bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty’.? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ibase=16
obase=A
10
16

是不是發現了什么?都知道A是在16進制中表示的是10進制中的10,而10在16進制中是10進制中的16,這下是不是明白了呢?之所以我們設置ibase=16?obase=10的時候輸出的結果不是我們想要的,是因為ibase=16?下面的obase的值被當做是16進制中的10,也就是10進制中的16,輸入的是十六進制數,輸出的也是十六進制數,所以得到的結果不是我們想要的了。

還是再驗證一下吧:我們把八進制轉成十進制先設置ibase=8,obase=10看看是什么樣的呢?

[root@centos7 ~]#bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty’.
ibase=8
obase=10
10
10

八進制中的10是8,輸入輸出都是8進制所以結果都一樣;八進制中的12是十進制中的10,我們把obase改成12是不是就是轉成十進制了呢?

[root@centos7 ~]#bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty’.
ibase=8
obase=12
10
8

上面的結果顯示是對的,你們是不是明白了呢?不明白的請留言!

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88395

(1)
ChaogGeChaogGe
上一篇 2017-11-14
下一篇 2017-11-14

相關推薦

  • find、locate、Gnome文件查找工具

    查找命令: ? ? ? ? locate:非實時查找 ? ? ? ? find:實時查找 ? ? ? ? Gnome:圖形化搜索工具 locate: 描述:查詢系統上預建的文件索引數據庫/var/lib/mlocate/mlocate.db,一天更新一次更新數據庫:updatedb特點:依賴于事先構建的索引。索引的構建是在系統較為空閑時自動進行(周期性任務)…

    Linux干貨 2017-11-26
  • 第三周:文本處理工具wc,cut,sort,uniq,tr,tee命令練習和用戶及組相關命令練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可; [root@app1 tmp]# who | cut -d" " -f1| uniq root dts centos 2、取出最后登錄到當前系統的用戶的相關信息; [r…

    Linux干貨 2016-09-27
  • vim文件編輯器

       vi命令是UNIX操作系統和類UNIX操作系統中最通用的全屏幕純文本編輯器。Linux中的vi編輯器叫vim,它是vi的增強版(vi Improved),與vi編輯器完全兼容,而且實現了很多增強功能。 vim功能十分強大,具有很多有優點: 所有的unix like系統都會內置vi文本編輯器,其他的文本編輯器則不一定會有 很多軟件的編…

    Linux干貨 2016-08-11
  • linux防火墻介紹

    一、前言firewall(防火墻):工作在網絡進入或者流包,進出的網絡數據包進行一定的規則進行檢查過濾系統。包括iptables和netfilter組件。iptables 是與 Linux 內核集成的 IP 信息包過濾系統。如果 Linux 系統連接到因特網或 LAN、服務器或連接 LAN 和因特網的代理服務器, 則該系統系統中更好地控制 IP 信息包過濾和…

    2017-04-30
  • N25-第四周作業

    第四周 1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@zf ~]# cp -r /etc/skel/ /home/tuser1 [root@zf ~]# chmod -R&nbs…

    Linux干貨 2016-12-21
  • Linux系統用戶、組

    1、資源分派:          Authentication  認證        Authorization   授權     &nbs…

    Linux干貨 2016-08-04
欧美性久久久久