【python初级】10进制与2进制8进制16进制的转换
【python初级】10进制与2进制8进制16进制的转换
- 背景
- 代码
背景
在做串口通信的时候发送的字符串都是16进制编码的。
本博客就介绍10进制与2、8、16进制的相互转换。
10进制是我们生活中默认使用的最常用的数值表示方式。
所谓十进制就是逢10进1(0,1,2,3,4,5,6,7,8,9),
2进制是逢2进1(0,1),
8进制是逢8进1(0,1,2,3,4,5,6,7,),
16进制是逢16进1(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
2、8、16进制的区别,是表示数值的bit最小单位不同,2进制是一个bit位,8进制是3个bit位,计算机非常常用的16进制是4个bit位。
以下是各种进制对应关系:
10进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16进制 | 0x0 | 0x1 | 0x2 | 0x3 | 0x4 | 0x5 | 0x6 | 0x7 | 0x8 | 0x9 | 0xa | 0xb | 0xc | 0xd | 0xe | 0xf |
8进制 | 0o0 | 0o1 | 0o2 | 0o3 | 0o4 | 0o5 | 0o6 | 0o7 | 0o10 | 0o11 | 0o12 | 0o13 | 0o14 | 0o15 | 0o16 | 0o17 |
2进制 | 0b0 | 0b01 | 0b10 | 0b11 | 0b100 | 0b101 | 0b110 | 0b111 | 0b1000 | 0b1001 | 0b1010 | 0b1011 | 0b1100 | 0b1101 | 0b1110 | 0b1111 |
代码
在python3中可以使用Python的内置函数进行进制间的转换。
2、8、10、16进制分别涉及以下内置函数。
bin():其他进制转二进制,以'0b'开头,如:0b111为十进制的7;
oct():其他进制转八进制,以'0o'开头,如:0o12为十进制的10;
int():其他进制转十进制。从小到大都学的用的就是十进制,大家很熟悉;
hex():其他进制转十六进制。以'0x'开头,如:0x1f为十进制的31;
其他进制转化成10进制的使用示例:
# 八进制转十进制
print(int('10010537',8)) # 输出10进制数字:2101599
print(int(0o10010537)) # 输出10进制数字:2101599# 十六进制转十进制
print(int('16',16)) # 输出10进制数字:22
print(int(0x16)) # 输出10进制数字:22# 二进制转十进制
print(int('1111',2)) # 输出10进制数字:15
print(int(0b1111)) # 输出10进制数字:15
其他进制转2进制:
# 八进制转2进制
print(bin(int('10',8)))# 输出2进制数字:0b1000
print(bin(0o10)) # 输出2进制数字:0b1000# 16进制转2进制
print(bin(int('1f',16))) # 输出2进制数字:0b11111
print(bin(0x1f)) # 输出2进制数字:0b11111# 10进制转2进制
print(bin(8)) # 输出2进制数字:0b1000
其他进制转16进制:
# 八进制转16进制
print(hex(int('10',8)))# 输出16进制数字:0x8
print(hex(0o10)) # 输出16进制数字:0x8# 2进制转16进制
print(hex(int('100',2))) # 输出16进制数字:0x4
print(hex(0b100)) # 输出16进制数字:0x4# 10进制转16进制
print(hex(15)) # 输出16进制数字:0xf
【python初级】10进制与2进制8进制16进制的转换相关推荐
- android进制之间的转换器,一个Android平台的16进制转换器
<一个Android平台的16进制转换器>由会员分享,可在线阅读,更多相关<一个Android平台的16进制转换器(1页珍藏版)>请在人人文库网上搜索. 1.一个An droi ...
- 嵌入式linux编程过成中模块从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数(提取特定字符串+字符串转16进制)
嵌入式linux编程过成中用到zigbee模块 zigbee从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数 (提取特定字符串+字符串转16进制) #include<st ...
- 把16进制转换为ascii字符c语言,ASCII转16进制C语言
满意答案 u2gseftj278 推荐于 2016.03.01 采纳率:56% 等级:11 已帮助:14340人 以前引别人的,自己懒得再写了呵呵.原理就是这样的,你可以直接用的 //函 数 名 ...
- linux 串口 字符 间隔,嵌入式linux编程过成中模块从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数(提取特定字符串+字符串转16进制)...
嵌入式linux编程过成中用到zigbee模块 zigbee从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数 (提取特定字符串+字符串转16进制) #include #incl ...
- Python进制转换的完全实现——2/10/16进制原/补码互转
一.需要转换的几种情况 不带符号位的整数 2进制 10进制 16进制 2进制 – bin2dec() bin2hex() 10进制 dec2bin() – dec2hex() 16进制 hex2bin ...
- 字符串10进制、16进制、ASSIC的互转
1. 动态的10进制字符串转16进制ASSIC #include <stdio.h> #include <string.h> #include <malloc.h> ...
- python 输出\xhh格式的16进制数据(改2)
温馨提示:标题解决方案请浏览后面部分,傻吊网友请按顺序浏览 启蒙(转载)自:https://blog.csdn.net/dengzhaoqun/article/details/8923259 顺带st ...
- linux shell 10进制转16进制
10进制转16进制:15 > 0xf printf '%x\n' 15 16进制转10进制:0xf > 15 printf '%d\n' 0xF echo $((16#f)) 16进制转8 ...
- Java10进制转16进制,16进制转10进制
1.Java10进制转16进制 /** 卡号位数:8 */public static byte CARD_NUM_BIT = 8;/*** isBlank * * @param value* @ret ...
最新文章
- HDU 4333 [SAM WRONG!!!]
- 18-Chain of trust bindings
- 查询Windows api
- 由openSession、getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持
- php优化上百次foreach,php – 优化数千个项目的foreach
- python linux log,linux,python 常用的处理log的命令
- 六级词汇打卡第天四天(四)
- python模拟网页上传文件_python模拟网页上传文件
- Permute3 mac最新多种媒体视频格式转换工具
- 网络链路检测工具WinMTR下载
- 设计心理学-产品设计的几个原则
- 基于STM32F103的智能循迹小车(舵机加双电机加灰度传感器的方案)
- Microsoft Office SharePoint Server 2007案例实战开发
- Echarts 学习系列(3)-Echarts动态数据交互
- Java删除文件夹和文件(最经典普通的写法)
- 【JAVA毕设】基于Java的在线购物系统的设计与实现
- 巧用selenium爬取巨潮资讯公司数据
- vmware 三种连接方式 如何设置独立ip
- Python3爬虫-04-模拟登录爬取企信宝200页数据
- 本地缓存、分布式缓存以及多级缓存