(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'"

当然 encodedecode也是不错的选择:

>>> 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进制字符串转二进制对象(及其逆转换)相关推荐

  1. 【进制转换】如何使用C++将一个十进制数转为16进制?

    题目 题目描述 请从键盘读入一个非负整数n(n是一个不超过18位的正整数),将n转换为16进制! 注意:16进制即逢16进1,每一位上可以是从小到大为0.1.2.3.4.5.6.7.8.9.A.B.C ...

  2. PHP相关进制转换(二进制转数组、十进制转16进制、16进制转字符串)

    前段时间一直在和机器对接,涉及各种进制转换,这里记一下. /*** 二进制字符串转数组* @User yaokai* @param $hex* @return array*/ function hex ...

  3. python 进制转换 递归_python--使用递归优雅实现列表相加和进制转换

    咦,好像坚持了一段时间,感觉又有新收获啦. # coding: utf-8 class Stack: def __init__(self): self.items = [] # 是否为空 def is ...

  4. c语言16进制字符串型转整形,c语言htoi() --将16进制数组成的字符串转换成整型

    k&r习题,将16进制数(可选0x或0X前缀)组成的字符串转换成等价的整型,写了一个: /* htoi.c * transform hex to decimal * * compile wit ...

  5. 【进制转换】二进制,十进制,八进制,16进制

    1.二进制与十进制相互转换 二进制转为十进制 0000 0110转换为10进制: (二进制里面没有"个位.十位.百位",只能通过从左到右或者从右到左第几位来描述), 从右往左开始, ...

  6. python基础数据结构互转和2、8、10、16进制互转

    文章目录 字符串与元组.字典.列表互转 元组与字符串互转(eval) 字符串与字典 字符串与列表互转 十进制与二.八.十六进制互转 十进制转二进制bin() 十进制转八进制oct() 十进制转十六进制 ...

  7. LeetCode 271. 字符串的编码与解码(4位16进制字符+字符串)

    文章目录 1. 题目 2. 解题 1. 题目 请你设计一个算法,可以将一个 字符串列表 编码成为一个 字符串. 这个编码后的字符串是可以通过网络进行高效传送的,并且可以在接收端被解码回原来的字符串列表 ...

  8. 进制数转换器的VB算法实现(2/8/10/16进制数可以相互转换)

    在VB6中新建一个工程,当前窗体默认为form1,添加一个框架控件frame.几个文本框控件text.几个标签控件label.两个timer计时器.三个按钮控件.添加一个窗体form2.一个模块mod ...

  9. python进制转换内置函数_python数学运算、逻辑运算和进制转化相关的 内置函数...

    学习函数原型 有些朋友平时反映,看不懂官方文档中介绍函数的说明,比如: max(iterable,*[, key, default]) max 函数的几个形参,为什么有 * 符号,又有 []? 今天在 ...

  10. java int 16进制字符串_关于将java int类型转换为16进制字符串的问题

    package p5.com.byd.mes.dev.tool.baseToChar; /** * 任意进制转换器 * @author solar */ public class Decimal { ...

最新文章

  1. 云原生时代,2个方案轻松加速百万级镜像
  2. PHP CURL 使用代理访问服务器
  3. linux下的C语言开发(多线程编程)
  4. Ubuntu14.04安装及配置mysql5.7.19
  5. access游戏库不显示 ea_全球游戏公司营收一览:腾讯连续第六年霸榜
  6. 【牛刀小试4】斐波那契数
  7. js大于等于小于等于书写
  8. idea-2017破解教程
  9. 朋友,我真诚的劝你别网贷
  10. 操作系统课设——Windows 进程管理
  11. 我是如何获取到全校同学的证件照?
  12. Pytorch模型训练中 使用的 MetricLogger类总结
  13. 将mov格式的视频转换mp4
  14. 写不完的数学试卷-----试卷生成器(Qt含源码)
  15. LeetCode算法,每日一题,冲击阿里巴巴,day7
  16. 让微积分穿梭于工作与学习之间(14):带圆弧多边形的面积计算(下,多值函数的情况)
  17. coco2017 数据集下载链接 及姿态关键点的数据处理
  18. 安装Intel Parallel Studio xe→Intel oneAPI
  19. AT32F415 修改时钟和晶振方法(原创)
  20. linux读屏软件下载,Orca读屏软件

热门文章

  1. Linux 修改DNS server 问题。
  2. mysql创建表格显示1064错误_尝试创建表时出现错误1064(Error 1064 when trying to create a table)...
  3. Swaks绕过SPF验证进行邮件伪造
  4. 对手机丢失后可能产生的危害的思考
  5. 什么是形参?什么是实参?
  6. Win PE 插件制作原理
  7. 使用禅道或Jira系统对接钉钉的群机器人消息管理,为什么没有艾特 @人呢?
  8. 【NOIP2018普及组】对称二叉树
  9. BiNE: Bipartite Network Embedding
  10. 【博客134】linux显示磁盘信息—df命令