Python入门:字符转换为二进制及进制之间转换
来源:互联网 发布:域名是啥意思 编辑:程序博客网 时间:2024/06/14 08:13
字符、进制之间的转换关系
python3.5
1、python中的ord及chr函数指的就是通常意义的unicode,即2个字节
2、UTF-8是1-6个字节的可变长编码方式,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节
自定义转换函数
#NumOctHex.py#自己写一个模块NumOctHex.py,包含8、10、16转换成2进制'''str_num的类型必需是可被str转换的整数,如:‘111’、‘123’16进制中str_num可以是‘123456789abcdef’,且必须是0-9及a-f之间8进制中str_num可以是‘1234567’,且必须是0-7之间的数''''''系统自带的转换方法都是通过10进制进行转换的,下面的三个函数是通过将8、10、16转换成2进制'''#十六进制to二进制def hex2bin(str_num): num = int(str_num,16) #如果是10进制转换二进制,只需要将此处的16删除,或改或10
while True:
if num == 0: break
bit.append(str(rem))
return ''.join(bit[::-1])#十进制to二进制def dec2bin(str_num): num = int(str_num,8) bit = [] while True: if num == 0: break num,rem = divmod(num,2) bit.append(str(rem)) return ''.join(bit[::-1])#八进制to二进制def oct2bin(str_num): num = int(str_num,8) bit = [] while True: if num == 0: break num,rem = divmod(num,2) bit.append(str(rem)) return ''.join(bit[::-1])
运行结果
'''下面两句是一样的str(obj,encoding=‘utf-8’,errors=‘strict’)''.encode(encoding=‘utf-8’,errors=‘strict’)'''#使用ord的二进制值,即2个字节的unicodeIn[70]: ord('中')Out[70]: 20013In[73]: dec2bin(str(ord('中')))Out[73]: '100111000101101'#使用utf-8的二进制值,即可变长的unicodeIn[75]: dec2bin(str('中'.encode('utf-8').hex()))Out[75]: '111001001011100010101101'
#以上函数有重复造轮子的嫌疑In[15]: '中'.encode() #先转换成16进制的bytesOut[15]: b'\xe4\xb8\xad'In[16]: '中'.encode().hex() #然后去除16进制的标识'b'和'\x'Out[16]: 'e4b8ad'In[17]: int('中'.encode().hex(),16) #16进制转换成10进制Out[17]: 14989485In[18]: bin(int('中'.encode().hex(),16)) #10进制转换成2进制Out[18]: '0b111001001011100010101101'#以上是中文字符转换成2进制的方法##################################################
1、num必须是带双引号的,可表示对应数值的字符
int(num,2)=========>将2进制转换成10进制【不能出现0、1以外的字符】
int(num,8)=========>将8进制转换成10进制【不能出现0-7以外的字符】
int(num,16)=========>将16进制转换成10进制【不能出现0-9和a-f以外的字符】
2、num是10进制的字数
bin(num)=========>将10进制转换成2进制【不能出现0-9以外的字符】
oct(num)=========>将10进制转换成8进制【不能出现0-9以外的字符】
hex(num)=========>将10进制转换成16进制【不能出现0-9以外的字符】
进制计算
1、10进制中的一位对应8进制中的三位,然后用二进制进行填位;
2、10进制中的一位对应16进制中的四位,然后用二进制进行填位;
1 0
- Python入门:字符转换为二进制及进制之间转换
- JS中字符问题(二进制/十进制/十六进制之间的转换),颜色进制转换
- java:实现字符串到二进制字符、16进制字符、unicode字符、base64字符之间的转换
- 进制转换:二进制、八进制、十六进制、十进制之间的转换
- C++进制转换程序(二进制转换为十进制,十进制转换为二进制)
- JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
- JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
- JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
- JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
- 利用栈进行进制转换,二进制转换为十进制
- 进制及字符转换
- python将二进制转换为十进制
- Python二进制串转换为通用字符串
- 图片 二进制 之间转换
- 进制转换、负的二进制及类型转换
- python中的字符数字之间的转换
- Python数字与字符之间的转换
- 【Python】Python实现进制转换(二进制、十进制和十六进制)及注意事项
- redis数据类型SortedSet的常用命令
- 互联网时代真的人人都是产品经理吗?
- __dirname与__filename
- 【考研数学】:罗尔定理的证明
- 新博客开张,哈哈嘿嘿
- Python入门:字符转换为二进制及进制之间转换
- 求解质因数
- 限制排列与棋盘多项式
- Java传值问题
- 357. Count Numbers with Unique Digits统计各位不同的数字个数
- QT学习之路————QT程序在开发板上显示 中文字体
- HDU-Bone Collector(01背包问题)
- Maven之——插件目标及绑定
- 使用 Collectd + InfluxDB + Grafana 监控主机