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 ...
随机推荐
- 关于php内存释放问题 内存溢出问题(二)
今天抽了一上午时间,来看了看之前解决过内存问题的代码,相对来说,我对自己代码的优化程序非常不满意,一次性导入四万条数据就使代码变得如此繁琐,我想这不是根本的解决方法.通过网上检索,对问题有进一步的分析 ...
- 一天搞定CSS:定位position--17
1.定位取值概览 2.相对定位relative <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...
- PHP中的面向对象OOP中的魔术方法
一.什么是魔术方法: PHP为我们提供了一系列用__开头的函数,这些函数无需自己手动调用,会在合适的时机自动调用,这类函数称为魔术函数.例如: function __construct(){} 在ne ...
- DOM事件类型总结大全
unload:事件在用户退出页面时发生 window.onload = function(){ return "页面关闭!"; }; onblur:失去焦点发生变化 window. ...
- “java.lang.IllegalArgumentException: Failed to evaluate expression ‘ROLE_USER’”报错的解决
这个问题出现在Spring Security的相关配置中,找到原来的这一行: <security:intercept-url pattern="/**" access=&qu ...
- Java学习笔记--异常描述
异常描述 1.简介 为了全面了解"异常"的概念,先来分析一个实例.假定要编写一个Java程序,该程序读取用户输入的一行文本,并在终端显示该文本.这里是一个演示Java语言I/O功能 ...
- 流畅的python学习笔记第七章:装饰器
装饰器就如名字一样,对某样事物进行装饰过后然后返回一个新的事物.就好比一个毛坯房,经过装修后,变成了精装房,但是房子还是同样的房子,但是模样变了. 我们首先来看一个函数.加入我要求出函数的运行时间.一 ...
- Java中使用 Long 表示枚举类
Java中使用 Long 表示枚举类 在日常的开发过程中,很多时候我们需要枚举类(enum)来表示对象的各种状态,并且每个状态往往会关联到指定的数字,如: private enum Color { R ...
- AS中layout_gravity与gravity的区别
gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思. android:layout_gravity 和 android:gravity 的区别 从名字上可以看到,android:gr ...
- [leetcode-599-Minimum Index Sum of Two Lists]
Suppose Andy and Doris want to choose a restaurant for dinner, and they both have a list of favorite ...