博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 数值系列-进制转换
阅读量:5893 次
发布时间:2019-06-19

本文共 1232 字,大约阅读时间需要 4 分钟。

进制转换

前语:

  如果您不通二进制,八进制,十六进制,请移步:

问题

你需要转换或者输出使用二进制,八进制或十六进制表示的整数。

解决方案

为了将整数转换为二进制、八进制或十六进制的文本串, 可以分别使用 bin() , oct() 或 hex() 函数:

1 >>> x = 12342 >>> bin(x)3 '0b10011010010'4 >>> oct(x)5 '0o2322'6 >>> hex(x)7 '0x4d2'8 >>>

另外,如果你不想输出 0b , 0o 或者 0x 的前缀的话,可以使用 format() 函数。比如:

1 >>> format(x, 'b')2 '10011010010'3 >>> format(x, 'o')4 '2322'5 >>> format(x, 'x')6 '4d2'7 >>>

 

整数是有符号的,所以如果你在处理负数的话,输出结果会包含一个负号。比如:

1 >>> x = -12342 >>> format(x, 'b')3 '-10011010010'4 >>> format(x, 'x')5 '-4d2'6 >>>

 

如果你想产生一个无符号值,你需要增加一个指示最大位长度的值。比如为了显示32位的值,可以像下面这样写:

1 >>> x = -12342 >>> format(2**32 + x, 'b')3 '11111111111111111111101100101110'4 >>> format(2**32 + x, 'x')5 'fffffb2e'6 >>>

为了以不同的进制转换整数字符串,简单的使用带有进制的 int() 函数即可:

1 >>> int('4d2', 16)2 12343 >>> int('10011010010', 2)4 12345 >>>

 

讨论

大多数情况下处理二进制、八进制和十六进制整数是很简单的。 只要记住这些转换属于整数和其对应的文本表示之间的转换即可。永远只有一种整数类型。

最后,使用八进制的程序员有一点需要注意下。 Python指定八进制数的语法跟其他语言稍有不同。比如,如果你像下面这样指定八进制,会出现语法错误:

1 >>> import os2 >>> os.chmod('script.py', 0755)3     File "
", line 14 os.chmod('script.py', 0755)5 ^6 SyntaxError: invalid token7 >>>

 

需确保八进制数的前缀是 0o ,就像下面这样:

1 >>> os.chmod('script.py', 0o755)2 >>>

 

转载于:https://www.cnblogs.com/crawer-1/p/8241898.html

你可能感兴趣的文章
Android NDK入门实例 计算斐波那契数列一生成jni头文件
查看>>
c/c++性能优化--I/O优化(上)
查看>>
将HTML特殊转义为实体字符的两种实现方式
查看>>
jquery 保留两个小数的方法
查看>>
网站架构设计的误区
查看>>
iis 故障导致网站无法访问
查看>>
C++ 基础笔记(一)
查看>>
System.Func<>与System.Action<>
查看>>
asp.net开源CMS推荐
查看>>
csharp skype send message in winform
查看>>
MMORPG 游戏服务器端设计--转载
查看>>
《星辰傀儡线》人物续:“灭世者”、“疯狂者”、“叛逆者”三兄妹
查看>>
安装系统字体
查看>>
SILK 的 Tilt的意思
查看>>
Html学习笔记3
查看>>
批处理学习笔记8 - 深入学习For命令1
查看>>
微信支付开发(11) Native支付
查看>>
HDFS dfsclient写文件过程 源码分析
查看>>
关于多线程的那些事
查看>>
JavaScript获取DOM元素位置和尺寸大小
查看>>