python进制转换字符串转二进制对象整数转二进制对象16进制字符串转二进制对象(及其逆转换)
(1)数字进制转换
int() 函数用于将一个字符串或数字转换为整型。
- x – 字符串或数字。
- base – 进制数,默认十进制。
- 如果是带参数base的话,要以字符串的形式进行输入
>>> int('10',8)
8
hex() 函数用于将一个指定数字转换为 16 进制数。
>>>hex(255)
'0xff'
oct() 函数将一个整数转换成 8 进制字符串,8 进制以 0o 作为前缀表示。
>>> oct(10)
'0o12'
bin() 返回一个整数 int 或者长整数 long int 的二进制表示。
>>>bin(10)
'0b1010'
(2)字符串转二进制对象 && 二进制对象转字符串
bytes() 函数返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本。
>>> a = bytes('hello','ascii')
>>> a
b'hello'
str() 万物转字符串函数哈哈,可以把二进制对象转换成字符串
>>> str(a)
"b'hello'"
当然 encode 和 decode也是不错的选择:
>>> a = 'hello'.encode()
>>> a
b'hello'
>>> a.decode()
'hello'
bytes() 对比 bytearray():
>>> a = bytes('hello','ascii')
>>> a
b'hello'
>>> a[0] = a[1]
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: 'bytes' object does not support item assignment
>>> type(a)
<class 'bytes'>
>>> b = bytearray('hello','ascii')
>>> b
bytearray(b'hello')
>>> b[0] = b[1]
>>> b
bytearray(b'eello')
>>> type(b)
<class 'bytearray'>
注意到bytearray是可变的
(3)字符转ASCII(unicode) && ASCII(unicode) 转字符
chr() 用一个整数作参数,返回一个对应的字符。
- 可以是 10 进制也可以是 16 进制的形式的数字,数字范围为 0 到 1,114,111 (16 进制为0x10FFFF)。
>>>chr(0x30)
'0'
>>> chr(97)
'a'
>>> chr(8364)
'€'
ord() 函数是 chr() 函数(对于 8 位的 ASCII 字符串)的配对函数,它以一个字符串(Unicode 字符)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值。
>>>ord('a')
97
>>> ord('€')
8364
(4)二进制对象转整数 && 整数转化成二进制对象
int.from_bytes()功能是将二进制对象转化成整数。'12’如果没有标明进制,看做ascii码值
num1 = int.from_bytes(b'12', byteorder = 'big')
# '12':0011 0001 0011 0010 (大端:数据低位靠左(大)存)
num2 = int.from_bytes(b'12', byteorder = 'little')
# '12':0011 0010 0011 0001 (小端:数据低位靠右(小)存)
print(num1,num2)# 12594 12849
- 第一个参数:要转化的二进制对象
- byteorder:存储方式(大小端)
- signed:表示是否是无符号数
(number).to_bytes()功能将整数转化成二进制对象
byt1 = (1024).to_bytes(2, byteorder = 'big')
byt2 = (1024).to_bytes(10, byteorder = 'big')
byt3 = (-1024).to_bytes(10, byteorder= 'big',signed= True) # 负数由补码表示
lis1 = ['byt1', 'byt2','byt3']
lis2 = [byt1, byt2, byt3]
lis3 = zip(lis1, lis2)
dic = dict(lis3)
print(dic)# 'byt1': b'\x04\x00'
# 'byt2': b'\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00'
# 'byt3': b'\xff\xff\xff\xff\xff\xff\xff\xff\xfc\x00'
- 第一个参数:要存放的字节数
大整数转二进制对象
byt1 = (2077392566271395359695912870032509).to_bytes(15, byteorder = 'big')
print(byt1)# b'\x00flag{B4by_Rs4}'
(5)十六进制字符串转二进制对象 && 二进制对象转十六进制字符串
hexlify&unhexlify
import binascii
s = b'abcde'
h = binascii.b2a_hex(s) # 二进制 转16进制 '6162636465'
print(h)
h = binascii.hexlify(s) # 作用同上
print(h)s = binascii.a2b_hex(h) # 16进制转二进制 b'abcde'
print(s)
s = binascii.unhexlify(h) # 作用同上
print(s)
python进制转换字符串转二进制对象整数转二进制对象16进制字符串转二进制对象(及其逆转换)相关推荐
- 【进制转换】如何使用C++将一个十进制数转为16进制?
题目 题目描述 请从键盘读入一个非负整数n(n是一个不超过18位的正整数),将n转换为16进制! 注意:16进制即逢16进1,每一位上可以是从小到大为0.1.2.3.4.5.6.7.8.9.A.B.C ...
- PHP相关进制转换(二进制转数组、十进制转16进制、16进制转字符串)
前段时间一直在和机器对接,涉及各种进制转换,这里记一下. /*** 二进制字符串转数组* @User yaokai* @param $hex* @return array*/ function hex ...
- python 进制转换 递归_python--使用递归优雅实现列表相加和进制转换
咦,好像坚持了一段时间,感觉又有新收获啦. # coding: utf-8 class Stack: def __init__(self): self.items = [] # 是否为空 def is ...
- c语言16进制字符串型转整形,c语言htoi() --将16进制数组成的字符串转换成整型
k&r习题,将16进制数(可选0x或0X前缀)组成的字符串转换成等价的整型,写了一个: /* htoi.c * transform hex to decimal * * compile wit ...
- 【进制转换】二进制,十进制,八进制,16进制
1.二进制与十进制相互转换 二进制转为十进制 0000 0110转换为10进制: (二进制里面没有"个位.十位.百位",只能通过从左到右或者从右到左第几位来描述), 从右往左开始, ...
- python基础数据结构互转和2、8、10、16进制互转
文章目录 字符串与元组.字典.列表互转 元组与字符串互转(eval) 字符串与字典 字符串与列表互转 十进制与二.八.十六进制互转 十进制转二进制bin() 十进制转八进制oct() 十进制转十六进制 ...
- LeetCode 271. 字符串的编码与解码(4位16进制字符+字符串)
文章目录 1. 题目 2. 解题 1. 题目 请你设计一个算法,可以将一个 字符串列表 编码成为一个 字符串. 这个编码后的字符串是可以通过网络进行高效传送的,并且可以在接收端被解码回原来的字符串列表 ...
- 进制数转换器的VB算法实现(2/8/10/16进制数可以相互转换)
在VB6中新建一个工程,当前窗体默认为form1,添加一个框架控件frame.几个文本框控件text.几个标签控件label.两个timer计时器.三个按钮控件.添加一个窗体form2.一个模块mod ...
- python进制转换内置函数_python数学运算、逻辑运算和进制转化相关的 内置函数...
学习函数原型 有些朋友平时反映,看不懂官方文档中介绍函数的说明,比如: max(iterable,*[, key, default]) max 函数的几个形参,为什么有 * 符号,又有 []? 今天在 ...
- java int 16进制字符串_关于将java int类型转换为16进制字符串的问题
package p5.com.byd.mes.dev.tool.baseToChar; /** * 任意进制转换器 * @author solar */ public class Decimal { ...
最新文章
- 云原生时代,2个方案轻松加速百万级镜像
- PHP CURL 使用代理访问服务器
- linux下的C语言开发(多线程编程)
- Ubuntu14.04安装及配置mysql5.7.19
- access游戏库不显示 ea_全球游戏公司营收一览:腾讯连续第六年霸榜
- 【牛刀小试4】斐波那契数
- js大于等于小于等于书写
- idea-2017破解教程
- 朋友,我真诚的劝你别网贷
- 操作系统课设——Windows 进程管理
- 我是如何获取到全校同学的证件照?
- Pytorch模型训练中 使用的 MetricLogger类总结
- 将mov格式的视频转换mp4
- 写不完的数学试卷-----试卷生成器(Qt含源码)
- LeetCode算法,每日一题,冲击阿里巴巴,day7
- 让微积分穿梭于工作与学习之间(14):带圆弧多边形的面积计算(下,多值函数的情况)
- coco2017 数据集下载链接 及姿态关键点的数据处理
- 安装Intel Parallel Studio xe→Intel oneAPI
- AT32F415 修改时钟和晶振方法(原创)
- linux读屏软件下载,Orca读屏软件
热门文章
- Linux 修改DNS server 问题。
- mysql创建表格显示1064错误_尝试创建表时出现错误1064(Error 1064 when trying to create a table)...
- Swaks绕过SPF验证进行邮件伪造
- 对手机丢失后可能产生的危害的思考
- 什么是形参?什么是实参?
- Win PE 插件制作原理
- 使用禅道或Jira系统对接钉钉的群机器人消息管理,为什么没有艾特 @人呢?
- 【NOIP2018普及组】对称二叉树
- BiNE: Bipartite Network Embedding
- 【博客134】linux显示磁盘信息—df命令