发布于2019-10-14 17:46 阅读(1544) 评论(0) 点赞(7) 收藏(0)
以八度为单位,该命令之后的所有数字输出format bit
将显示存储在内存中的数字的本机位表示。例如,
octave:1> format bit
octave:2> 0.5
ans = 0011111111100000000000000000000000000000000000000000000000000000
octave:7> 2
ans = 0100000000000000000000000000000000000000000000000000000000000000
octave:3> format
octave:4> 0.5
ans = 0.50000
python中是否有一个等效的命令以其本机位表示形式显示所有数字(因此输出如下所示)?
>>> "equivalent of the octave format bit command"
>>> 0.5
0011111111100000000000000000000000000000000000000000000000000000
(这与0.5的二进制表示形式非常不同。)
使用Python时,您不需要此信息。就像使用八度一样设置“输出模式”是不可能的(无需修改Python本身)。如果您确实希望所有输出都使用默认格式以外的其他格式,则可以为此编写自定义函数,print
如果使用的是Python 3 ,甚至可以覆盖默认函数。
如果只想查看数字的二进制表示形式,则可以bin(number)
对整数使用函数。对于花车,您可以使用float.hex(number)
。
如果我们真的想看到内部代表,则需要一些工作,一点点的黑魔法和ctypes
图书馆。使用Python来获取此数据并不容易(或无论如何可用),但是我创建了一个函数,向我们展示了内部如何表示float:
我们知道Python中的浮点数是IEEE 754双精度浮点数,因此它们使用8字节(64位)的内存。
import ctypes
def show_float(x):
asdouble = ctypes.c_double(x)
xpointer = ctypes.addressof(asdouble)
xdata = ctypes.string_at(xpointer, 8)
print "".join([bin(ord(i))[2:] for i in xdata])
x = 3.14
show_float(x) # prints 1111110000101111010111010001101110001111010011000000
整数比较难,因为在所有实现中表示都不相同。您可以在这里找到一个示例。
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/136449/d7615a1392ceb4e9442a/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!