当前位置: 首页 > news >正文

我常用的shell 进制转换工具

一、进制的一些基础知识

1. 二进制(binary)

二进制的取值是0和1; 前缀是 0b

2. 八进制(Octal)

八进制的取值是0-7;前缀是 O

3. 十进制(decimal)

十进制的取值是0-9;没有前缀

4. 十六进制(hexadecimal)

十六进制的取值是 0-9,A-F;前缀是 0x

二、常用转换函数

1. bc 命令

An arbitrary precision calculator language . 任意精度的计数器语言

使用格式如下:

echo "obase = 2 ; ibase = 10 ; 9 "|bc
  • obase : 指定输出进制
  • ibase : 指定输入进制
  • 参数之间通过 分割
  • 最后一个参数是要转换的数据
  • 对于要转换的数据,不需要写前缀(0b,O,0x)。当它是十六进制数时,‘A-F’部分要写大写。

2. printf 命令

format and print data

使用格式如下:

printf '%d\n' 0b1001

使用printf 时,有部分进制之间不能转换,暂时不清楚原因。

3. echo 实现任意进制转十进制

  • 十六进制转十进制

    echo $((16#F)) //输出15
    
  • 八进制转十进制

    echo $((8#15)) //输出13
    
  • 二进制转十进制

    echo $((2#1001)) //输出9
    

从上面转换可以看出,# 号前面表示当前数据的进制,后面表示要转换的数据,要转换的数据不需要带前缀。

三、常见的转换

1. 二进制、十进制互转

二进制转十进制

printf '%d\n' 0b1001

执行后输出:9

十进制转二进制

echo "obase = 2 ; ibase = 10 ; 9 "|bc

执行后输出:1001

2. 十进制 、十六进制互转

十进制转十六进制

printf "%x\n" 15

执行后输出:f

十六进制转十进制

printf "%d\n" 0x0f

执行后输出:15

3. 十进制 、八进制互转

十进制转八进制

printf "%o\n" 15

执行后输出:17 (八进制)

八进制转十进制

echo "obase=10;ibase=8; 15"|bc

执行后输出:13

http://www.lryc.cn/news/41139.html

相关文章:

  • 手写vue(二)响应式实现
  • mysql数据库常问面试题
  • AI风暴 :文心一言 VS GPT-4
  • VR全景城市,用720全景树立城市形象,打造3D可视化智慧城市
  • javaweb窗口服务人员分析评价系统ssh
  • 树莓派Pico W无线开发板UDP协议MicroPython网络编程实践
  • 跨域解决方案
  • springboot的统一处理
  • C/C++每日一练(20230319)
  • GitHub 上有些什么好玩的项目?
  • 蓝桥杯刷题第十二天
  • 开发也可以很快乐,让VSCode和CodeGPT带给你幸福感
  • 【Linux】基本指令介绍
  • JQuery介绍
  • Selenium基础篇之八大元素定位方式
  • C语言的灵魂---指针(基础)
  • 带你一文透彻学习【PyTorch深度学习实践】分篇——线性模型 梯度下降
  • Javascript如何截取含有表情的字符串
  • 【云原生】prometheus结合jmx exporter 的java agent模式采集tomcat监控实战
  • 深度学习应用技巧总结与pytorch框架下训练过程的记忆技巧
  • 数字图像处理 基于OpenCV的一种简单的阴影校正的方法
  • OpenHarmony之cJSON库使用介绍
  • 门面设计模式
  • 苹果手写笔好用吗?比较好用的ipad手写笔推荐
  • GPT-4来了!看看她究竟强在哪里!
  • GPT-4 API 接口调用及价格分析
  • MySQL高级功能:存储过程、触发器、事务、备份和恢复
  • SAP 发出商品业务配置
  • C++线程池理解
  • 2023年最新软著申请流程(一):软件著作权说明、国家版权官网的账号注册与实名认证