在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干嘛,不是多此一举吗?计算器默认的输入输出进制就是十进制。可是为什么先设置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.178linux.com/88395

(1)
ChaogGeChaogGe
上一篇 2017-11-14 00:41
下一篇 2017-11-14 15:08

相关推荐

  • 内核升级和救援模式

    http://www.cnblogs.com/wzhuo/p/6728336.html 

    Linux干货 2017-04-24
  • VMWare网络连接的三种模式

    在创建虚拟机的时候我们会对网络适配器进行配置,那么网络适配器是什么呢?首先我们来简单介绍一下网络适配器。 计算机与外界局域网的连接是通过主机箱内插入一块网络接口板(或者是在笔记本电脑中插入一块PCMCIA卡)。而网络接口板又称为通信适配器或网络适配器(networkadapter)或网络接口卡NIC(NetworkInterface Card),但是更多的人…

    Linux干货 2017-07-12
  • 第二周作业

    课后作业 1.Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例演示。 cp:复制命令 三种常用方式: cp[OPTION]…[-T] SOURCE DEST cp[OPTION]…SOURCE…DIRECTORY cp[OPTION]…-t DIRECTORY SOURCE 如果SRC是…

    Linux干货 2016-12-10
  • 新手报到

    在开班的第一天为自己立下flag,看毕业时能否实现自己的预期。

    2018-03-26
  • ansible学习笔记

    简介:  在日常服务器维护中,从系统安装到程序部署再到发布应用,在大规模的生产环境中,如果需要手动的每台服务器进行安装配置将会给运维人员带来许多繁琐而又重复的工作。这就促使了在每个运维层次中出现了不同的自动化运维工具。 常见的自动化运维工具分类有以下几类:  系统安装运维工具(OS Provisioning):    …

    Linux干货 2015-08-17
  • 第一周

    #blog text 1. 描述计算机的组成及其功能。 2. 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。 3. 描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。 4. 说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、pow…

    Linux干货 2016-12-04