Linux工具之bc计算器进制的转换
bc是Linux下的命令行式的计算器。 题目虽然叫任意进制,但是因为bc的限制,输入进制是216范围;输出进制是2999范围。这与常见计算器的进制范围是一致的,比如windows计算器最高也只能处理16进制输入数据。
一、bc计算器的使用
- 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 #计算器输出结果
- bc计算器进制转换
[root@centos6 ~]# bc
obase=16 #设置输出为16进制
ibase=2 #设置输入为2进制
1111111111111100011010 #输入2进制数
3FFF1A #转换为16进制
二、通过管道运算与进制转换
- 这里使用的管道可以简单的理解为将
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
- 双引号、单引号、反单引号的使用
[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
三、使用中遇到的问题
- 先设置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
- 先设置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
- 先设置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
- 先设置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
- 使用管道时同样只能先给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只能赋值一次。
Linux工具之bc计算器进制的转换的更多相关文章
- ColorUtil【Color工具类(color整型、rgb数组、16进制互相转换)】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 主要用于color整型.rgb数组.16进制互相转换(-12590395 <--> #3FE2C5 <--> ...
- 字节流、字符串、16进制字符串转换__Java(转)
/** * @Package: * @ClassName:TypeConversion * @Description:字节流.字符串.16进制字符串转换 * @author:xk * @date:Ja ...
- iOS 16进制字符串转换成int十进制
NSRange rangeErr; rangeErr.location = 6; rangeErr.length = 2; NSString *strings = [value substringWi ...
- Java中将16进制字符串转换成汉字
技术交流群:233513714 /** * 将16进制字符串转换成汉字 * @param str * @return */ public static String deUnicode(String ...
- N进制数组转换成正整数
给定一个任意长度的数组,其中的元素按照一定的进制(N进制)来转换成正整数 //把数组中的元素按照N进制转换成为正整数 #include <stdio.h> #include <std ...
- javascript 10进制和64进制的转换
原文:javascript 10进制和64进制的转换 function string10to64(number) { var chars = '0123456789abcdefghigklmnopqr ...
- 编程实现将一个N进制数转换成M进制数
问题:编程实现将一个N进制数转换成M进制数.(c/c++.Java.Javascript.C#.Python) 1.Python 手写算法版 def conversion_num(num, src, ...
- java 的任意进制间转换
直接上代码: public class Main { public static void main(String[] args) { // TODO Auto-generated method st ...
- C++实现16进制字符串转换成int整形值
开发中经常需要把16进制字符串转换成整形,写了个个代码供大家参考下: #include <stdio.h> #include <string.h> //字符转换成整形 int ...
随机推荐
- docker安装与学习
docker学习 以ubuntu为实例 第一步检查系统内核>3.80 第二步 安装Docker 之前先更新apt-get update 在执行安装命令 apt-get install -y do ...
- 2-SAT算法
参考blog 参考论文 参考论文 题目 & 题解 裸2-SAT poj3683 poj3207 poj3678 poj3648 2-SAT + 二分法 poj2723 poj2749 hdu3 ...
- MarkDown编辑器快捷方式
常用快捷: Ctrl+K 插入代码块 Ctrl+G 插入图片 Ctrl+B 文字加粗 Ctrl+I 文字倾斜 Ctrl+G 插入图片 Tab 默认新建高亮代码块 ">" 向右 ...
- 论文笔记 Spatial contrasting for deep unsupervised learning
在我们设计无监督学习模型时,应尽量做到 网络结构与有监督模型兼容 有效利用有监督模型的基本模块,如dropout.relu等 无监督学习的目标是为有监督模型提供初始化的参数,理想情况是"这些 ...
- Selenium WebDriver + python 自动化测试框架
目标 组内任何人都可以进行自动化测试用例的编写 完全分离测试用例和自动化测试代码,就像写手工测试用例一下,编写excel格式的测试用例,包括步骤.检查点,然后执行自动化工程,即可执行功能自动化测试用例 ...
- canvas实现视频截图
截取视频当前播放画面,直接上源码. <body> <div class="container"> <video id="test" ...
- springmvc返回值为void
/** * 移动端退出登录 * @param req */ @RequestMapping(value="/mobileUserLogout") @ResponseBody pub ...
- .Net Core 图片文件上传下载
当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口. ...
- 工作流调度引擎---Oozie
Oozie使用教程 一. Oozie简介 Apache Oozie是用于Hadoop平台的一种工作流调度引擎. 作用 - 统一调度hadoop系统中常见的mr任务启动hdfs操作.shell调度. ...
- Vue.js组件之间的通信
导语:组件之间的关系不外乎两种, 父子组件和非父子组件,本文将对两类组件之间的通信方式进行详细阐述. 父子组件间的通信 通信方式1(单向绑定): Props down, Events up (建议使用 ...