将IBM十六进制浮点数转换为IEEE 754浮点数
项目描述
ibm2ieee包提供了NumPy通用函数("ufunc")将IBM单精度和双精度十六进制浮点数转换为Python和NumPy在几乎所有当前平台上使用的IEEE 754格式的浮点数。
功能
快速:在典型现代机器上,假设正常输入,每秒可转换200-400百万个值。
正确:转换结果按照默认的IEEE 754四舍六入五舍偶舍的舍入模式正确舍入。边界情况(溢出、下溢、亚数值结果、有符号零、非规格化输入)都得到正确处理。当舍入后的转换值超出目标类型的范围时,返回相应的有符号无穷大。
处理单精度和双精度输入和输出格式。
可移植性提示:此模块提供的转换函数假定 numpy.float32 和 numpy.float64 是基于标准的IEEE 754二进制32和二进制64浮点格式。这在当前的大多数平台上都是正确的,但并非相关语言标准所保证。
用法
此包提供了两个函数
ibm2float32 将IBM单精度或双精度数据转换为IEEE 754单精度值,格式为 numpy.float32。
ibm2float64 将IBM单精度或双精度数据转换为IEEE 754双精度值,格式为 numpy.float64。
对于这两个函数,IBM单精度输入数据必须使用 numpy.uint32 dtype 表示,而IBM双精度输入必须使用 numpy.uint64 表示。
这两个函数都假定IBM数据已经被转换为NumPy整数格式,使得浮点数的最显著位成为整数值的最显著位。因此,当解码表示IBM十六进制浮点数的字节数据时,考虑字节数据的字节序非常重要。下面是转换大端字节数据的示例。
示例
>>> import numpy >>> from ibm2ieee import ibm2float32, ibm2float64 >>> ibm2float32(numpy.uint32(0xc1180000)) -1.5 >>> type(ibm2float32(numpy.uint32(0xc1180000))) <class 'numpy.float32'> >>> ibm2float32(numpy.uint64(0x413243f6a8885a31)) 3.1415927 >>> ibm2float32(numpy.uint32(0x61100000)) inf >>> ibm2float64(numpy.uint32(0xc1180000)) -1.5 >>> ibm2float64(numpy.uint64(0x413243f6a8885a31)) 3.141592653589793 >>> ibm2float64(numpy.uint32(0x61100000)) 3.402823669209385e+38 >>> input_array = numpy.arange( 0x40fffffe, 0x41000002, dtype=numpy.uint32).reshape(2, 2) >>> input_array array([[1090519038, 1090519039], [1090519040, 1090519041]], dtype=uint32) >>> ibm2float64(input_array) array([[9.99999881e-01, 9.99999940e-01], [0.00000000e+00, 9.53674316e-07]])
当转换从文件中读取的字节数据时,了解数据的字节序(这在使用IBM十六进制浮点数的旧数据文件中通常是big-endian)非常重要。以下是将大端形式存储的IBM单精度数据转换为 numpy.float32 的示例。请注意,在将字节数组转换为NumPy uint32 数组时使用了 '>u4' dtype。对于小端输入数据,您将使用 '<u4'。
>>> input_data = b'\xc12C\xf7\xc1\x19!\xfb\x00\x00\x00\x00A\x19!\xfbA2C\xf7' >>> input_as_uint32 = numpy.frombuffer(input_data, dtype='>u4') >>> input_as_uint32 array([3241296887, 3239649787, 0, 1092166139, 1093813239], dtype=uint32) >>> ibm2float32(input_as_uint32) array([-3.141593, -1.570796, 0. , 1.570796, 3.141593], dtype=float32)
关于格式的说明
IBM单精度格式具有6个十六进制数字的精度,实际上转换为21-24位精度,具体取决于相关值所属的binade。IEEE 754单精度具有24位精度。因此,所有不太小、不太大的IBM单精度值都可以精确转换为IEEE 754单精度值,不会丢失精度。然而,IBM单精度的范围大于相应的IEEE 754范围,因此极端的IBM单精度值在转换为IEEE 754单精度时可能会溢出到无穷大,下溢到零,或舍入到亚数值。
对于双精度转换,权衡是相反的:IBM双精度格式具有53-56位的有效精度,而IEEE 754双精度具有53位精度。因此,大多数IBM值在转换为IEEE 754时会舍入。然而,IEEE 754双精度范围大于IBM双精度范围,因此在将IBM双精度转换为IEEE 754双精度时不会出现溢出、下溢或精度降低的亚数值结果。
每个IBM单精度值都可以在IEEE 754双精度中精确表示,因此如果您想要IBM单精度数据的无损表示,请使用 ibm2float64。
请注意,IBM格式不允许表示特殊值,如无穷大和NaN。然而,有符号零是可表示的,并且零的符号在所有转换中都得到保留。
安装
最新的ibm2ieee版本可在Python包索引中找到,地址为 https://pypi.ac.cn/project/ibm2ieee。可以使用 pip 以常规方式安装。
pip install ibm2ieee
轮子适用于常见的平台和Python版本。如果从源代码安装,请注意,ibm2ieee 包含一个 C 扩展,因此您需要在您的系统上安装适当的编译器才能进行安装。
ibm2ieee 需要 Python >= 3.7。
许可证
(C)版权所有 2018-2023 Enthought, Inc.,德克萨斯州奥斯汀。保留所有权利。
本软件根据 LICENSE.txt 中包含的 BSD 许可证提供,且仅可在上述许可证所述条件下重新分发。许可证还可在以下网址在线获取:http://www.enthought.com/licenses/BSD.txt
感谢您使用 Enthought 开源软件!
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
构建分发
ibm2ieee-1.3.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c913cce4315502badd335738e89632a60e0e4253a01bffa5a6d21d6d9172334f |
|
MD5 | 2bd40208bbc09b5b689acc06de0de577 |
|
BLAKE2b-256 | 5236a08ca13a725fabcea975dce99de27f435a8dcb1715765b0ca2f29a4ce269 |
ibm2ieee-1.3.3-cp312-cp312-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5f8fdf3b5689f840eee06d502bef129e72383dcef42aba47a14bbe6b8808540c |
|
MD5 | 4c60348f50a6eaceccc9da57ccc029aa |
|
BLAKE2b-256 | 5ae3f422836427704cb108d974e30edb18d8e25f9bc3589e382259e53f9926d7 |
ibm2ieee-1.3.3-cp312-cp312-win32.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 03042c6e1b25c8f1e6255544ddc831049df047b8832c5bf1397643de82050021 |
|
MD5 | 206ca919f27169264f0f33b1175c03fa |
|
BLAKE2b-256 | d4336d686bf7791662f6aeae96a0153d5f5e2bea8a9b31b56269bf86cc92bda7 |
ibm2ieee-1.3.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6bc40866dcd4f527503ae0e98e52f761ba07cca299f04ca2431262570f42742c |
|
MD5 | 8675d1adc635b08572b8312af40f71c2 |
|
BLAKE2b-256 | a51b564bae6b4d8ebebc03d3a9f00429abb8f7bde7fdd9c2270996138d2197b9 |
ibm2ieee-1.3.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 548bc7558a00ca7435781c3dfbfc23e89f1aaa5d229eb25ce94d525285775dfa |
|
MD5 | a1118c9022809be50b3a5cd2183ebe15 |
|
BLAKE2b-256 | 17e8074a800aadf17bbb09a7954c672263c092fe3b41f9d6ddd54e6e202c4017 |
ibm2ieee-1.3.3-cp312-cp312-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 26efbebc1dd7395b131f98b6381ebf01c5c802275f457dbc59d8c467eaea291f |
|
MD5 | 556f7183e0fea7f028c4f9dda4fe0948 |
|
BLAKE2b-256 | 02809984268a888e9afe2a3a1a91f53d9d372c89a768643554d702dd1293bef4 |
ibm2ieee-1.3.3-cp312-cp312-macosx_10_9_universal2.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0f78585170c1ff3c9a0be658b71c0ce1ddf5a005376ee5cacf2184031575a509 |
|
MD5 | e4f09e110b625d2b251d188ae5c85541 |
|
BLAKE2b-256 | e423dae6e26bc749b07d3a11f2509006b2d9e2fb4ffdf30eeb9566b416f645fc |
哈希值 为 ibm2ieee-1.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3b5573c1d567475c586e022405f0ff287418db1c1f48b1832db2a69f5f7b7f3d |
|
MD5 | 14594f52798c8ccac1817048a9e08613 |
|
BLAKE2b-256 | a03864fdd9f1c7b0946d86e6150b02ef18c36e825af4112d8135f3d36869b6cb |
哈希值 为 ibm2ieee-1.3.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0c5f1e0f2d3e64a2a43a8772a6e71860870cb801649ec1b07e2c6613e4fa8f2f |
|
MD5 | b18da93bc57759d16beb4ffe006259d2 |
|
BLAKE2b-256 | 55233d658252a77eb9699cd8a9fa3f2a9ee412dfefdab2358482036de464358a |
哈希值 为 ibm2ieee-1.3.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 95781479244a4dea91374409b89f4ffa5ce30072addf4f3b740b5e6249ae41bc |
|
MD5 | 90118195956acf3d1c8770f4e973990a |
|
BLAKE2b-256 | 2f302c58c2c15c4289858f722df8e2f3c088d16e6f7019343c096867870ab71b |
哈希值 为 ibm2ieee-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eec915bc08020c599e195a5b84b248fbe13319bb223708885eeaeb747b3f13dd |
|
MD5 | 228ab6dab75c4b3ab44f5579342fa4ff |
|
BLAKE2b-256 | c163e87fa737627db23b3837ff528ab75abb2d63101894bcc9672ddba47c3dd2 |
哈希值 为 ibm2ieee-1.3.3-cp311-cp311-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b26a1ae2d2b53227469e68e735f1b0a4fa9fb21c510b25f55dd8810433230003 |
|
MD5 | 85f1d8c168e66f84238afb6a99ee2913 |
|
BLAKE2b-256 | 2cb166766b47203acbb018eb802543264f3d2f77f78eeddfcfaf8ea24edd30b2 |
哈希值 为 ibm2ieee-1.3.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9ece1e48bf8bb93c403b6a159688129b334f47d9efe4f48981a930b6ee038dbd |
|
MD5 | 1c90b01dafb5173623835c0ec733bb22 |
|
BLAKE2b-256 | f49d14667232f631d7d34aba96a1ae8f281ccb9ab86e185277396dbad36791b9 |
哈希值 为 ibm2ieee-1.3.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a54cda230408fe6659fef26460b0fbcc48f70c25d590c25335eb5b7cb5e1b189 |
|
MD5 | 68cae1f19f0c7114a8e24b607b7e60f4 |
|
BLAKE2b-256 | d2be44939be037beb09ce0789fb574c3f8759b71680bc590caa59bb0e54d229d |
哈希值 为 ibm2ieee-1.3.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 09fdfed4490b8f1c7c6310fb6842fb00eaf05f205fb694d919a4f5472b810511 |
|
MD5 | 103e6b770346f23a2819081bdf33465d |
|
BLAKE2b-256 | 6e63f2c2bedfc9065d6c9539d7d7851e63fcedfbd9f0c838585538a44f583ba4 |
哈希值 为 ibm2ieee-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 55b32b617f32771d406dd9448902734a0c3dc5e8002be0ed88c92629563f9064 |
|
MD5 | 31bea4410d9a5db457ec4a76ee460535 |
|
BLAKE2b-256 | 15d31b589ff2553d9840e143ef5728a204b994009e022f2b9035844567419498 |
哈希值 for ibm2ieee-1.3.3-cp310-cp310-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5340c49aabb04e9e11d34b86d6a988db4dc763d30df54c1ef538ccd2c493b46e |
|
MD5 | 29a729c7852d362ee3fd21857e5d73a7 |
|
BLAKE2b-256 | 9d39a7927800c673c04259e955d5e7bcac5a4b4dd9092a9cfeba2b9f6deb1ee0 |
哈希值 for ibm2ieee-1.3.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | add9c9e78276e524c940ea8c1563eb957a342f244d5002f9e84021645c9e9d2a |
|
MD5 | b7a7a8b7c831f100d8df0e39f1c3906c |
|
BLAKE2b-256 | bcbe89d4185ea6030b8da951823562b0f36676b8816a6d6fdd3c5017dd114400 |
哈希值 for ibm2ieee-1.3.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b1f2de76e134de83000ef2345afc9b26a2c8845e49ef20653ec4f0a72a26986d |
|
MD5 | 7585a7ce54e734bf4d77758b7c4495c8 |
|
BLAKE2b-256 | 8fcb5990d2104c6c025ee21c9607c407959f8f99096f34db2e9515081370ed19 |
哈希值 for ibm2ieee-1.3.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bb93dd8d0dfe511263cd3cc5d493049d7f7704461c1aa9a165288766e6e27083 |
|
MD5 | 6cd5d06a84ff232a218604936fa6865d |
|
BLAKE2b-256 | 0c17ffc55ba829647283ba3a2fdbbf5f4de97314d5ade9b68639e4b9cfa5b4f3 |
哈希值 for ibm2ieee-1.3.3-cp39-cp39-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 76a93726dc9f476a61ab52b60ab7b9b6bf57d1642d852fc3f37e292151c14cbe |
|
MD5 | b2516c0fe0c72482fee71c4aa1d3b845 |
|
BLAKE2b-256 | 7e24e8b8628b3665252d5fec348dd56ac4a5b77ba2c88d2547a766f3a1b5bb74 |
哈希值 for ibm2ieee-1.3.3-cp39-cp39-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c0ca1e8739e8a1bfe6bf8c5e103eb19fa876cf2f16dce1c88c04d09eaf3ec3a9 |
|
MD5 | 0aea1c6e4ab100e34756461b0e3649de |
|
BLAKE2b-256 | aac57a3709f0e43cc74970dd12773f5e0e5f9957c148e54c22a36d76271a4c70 |
哈希值 for ibm2ieee-1.3.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | df571dd3b6623bfc9ad66ccaf0771227bd5c6da705611be702a18b0ef84a4a30 |
|
MD5 | 07f88cda801e32e6e2ce83008735a786 |
|
BLAKE2b-256 | 63ea073fc6f041ec954f26e5f7f61d43f2527bdfadb59f8c98e4afb1579a1c58 |
哈希值 for ibm2ieee-1.3.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3a5642ca75d421a368d37bda7c24f706bb38103de52837b8e8dd3e935ef62061 |
|
MD5 | e16da1cda02400585c9f4da974041467 |
|
BLAKE2b-256 | 06c8ba24f1533c0f3aa83d21a68d5ab3a3fd96c18f7f76ad0e805adff0b6e7bd |
哈希值 用于 ibm2ieee-1.3.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 604ca1748b76d71f543e896cf0583d00495d39b15b53092c4e43fea5d146d450 |
|
MD5 | 0e9c58d9bca0731ceb5d01a02afdb847 |
|
BLAKE2b-256 | 0128dcdbbf4f512eba3bb3a8e7e52310464bd49660a515e737ae192a3ac95592 |
哈希值 用于 ibm2ieee-1.3.3-cp38-cp38-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4851503b186edf461e7fdcf04ccbafae2fab2f9a6c9fdad6a4188ab0c8d2a044 |
|
MD5 | e1e9877ef40b16bffc70d3a10364de35 |
|
BLAKE2b-256 | 01406c54fb90f9168d6e5e185e0a36dd34b859f927a834f641a31f1375e65406 |
哈希值 用于 ibm2ieee-1.3.3-cp38-cp38-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 48c49dbc50fcb16936f65b93edbbc0c484c6342ff5458eb4b63adf8d7cb1bd95 |
|
MD5 | 9f1d5eb2ef41fbed4c048ba018872a1a |
|
BLAKE2b-256 | cd727d22ce91464dfc44f3b27bf81cde5f3ebcb1c6bd89ba575bccbb9669c6b5 |
哈希值 用于 ibm2ieee-1.3.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bc60e3cf7a660377daa859721486b3f9978bb95ca1841729c22f61d253dda114 |
|
MD5 | 44efc1381b474c9aa797d6cfc1634812 |
|
BLAKE2b-256 | 1d48ee5dc6579c8768aab43d810d8394310a573e41cb76896e4c04aabf53b0f2 |
哈希值 用于 ibm2ieee-1.3.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 39a19fe19957ab4e0a886927dd047b678f708a826ac7fe9ac9a532985d6977fc |
|
MD5 | e0a0ab267ca7494d640670669e65efda |
|
BLAKE2b-256 | fd52a86d8c6ef78601fe7929c3e717acc403d859afab8afc1b1249aac722a44c |
哈希值 用于 ibm2ieee-1.3.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 159d62014032d1dca56dc53f32eb926f0e591aa44c602f4c9e68ff60347b43b2 |
|
MD5 | 73d942f66452ca8151e881e7a5f6e86c |
|
BLAKE2b-256 | 85753ea867afd5db6043e7aecb549939c646d1423cfd7bbf7a26b318ac71641d |
哈希值 用于 ibm2ieee-1.3.3-cp37-cp37m-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 09435bf063ccca4fa30aa79dbf340529e37ba931e76274cd98f73ce9615821d4 |
|
MD5 | 7ff30cdc0686d3c4d6e094b075cf02b5 |
|
BLAKE2b-256 | 0211ec263ed82d22d330dacc92013f45e4bb1fad963d4dc9c8500317e8e955f3 |