You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将float16数组转换为带符号的16位二进制?

将NumPy float16数组转换为16位IEEE 754二进制字符串

要把你的NumPy float16数组转换成带符号的16位二进制字符串(对应IEEE 754半精度浮点格式),可以用以下方法,在Jupyter Notebook中直接运行即可:

实现代码

import numpy as np

# 你的原始数组
arr = np.array([-0.1142  ,  0.11127 ,  0.0374  ,  0.02007 , -0.05737 , -0.02058 ,
       -0.1595  , -0.1288  ,  0.1436  , -0.05212 ,  0.2437  ,  0.0046  ,
       -0.1456  , -0.09485 , -0.0788  ,  0.1755  , -0.2429  , -0.1204  ,
       -0.01064 ,  0.01154 ,  0.06058 , -0.02666 ,  0.01773 ,  0.03436 ,
       -0.1262  , -0.3428  , -0.068   , -0.10645 ,  0.0669  , -0.02094 ,
       -0.0751  ,  0.001348, -0.1737  ,  0.01146 ,  0.01648 ,  0.03613 ,
        0.03384 , -0.063   ,  0.1617  , -0.03023 , -0.258   ,  0.0385  ,
        0.0382  ,  0.1821  ,  0.2104  , -0.01604 ,  0.05945 , -0.1809  ,
        0.1847  , -0.1569  ,  0.02007 ,  0.1757  ,  0.08514 ,  0.07886 ,
       -0.00872 , -0.1108  , -0.01473 ,  0.1075  , -0.1221  ,  0.0163  ,
        0.03275 , -0.01775 ,  0.01232 , -0.0705  ], dtype=np.float16)

# 转换为16位二进制字符串
binary_list = [format(x.view('uint16'), '016b') for x in arr]

# 打印每个元素的原始值和对应的二进制
for val, binary in zip(arr, binary_list):
    print(f"值: {val:.6f} | 16位二进制: {binary}")

代码说明

  • x.view('uint16'):将float16类型的元素转换为对应的16位无符号整数,这个整数就是该浮点数在IEEE 754半精度格式下的二进制编码的十进制表示。
  • format(x, '016b'):把整数格式化为16位二进制字符串,自动补前导零,确保输出长度固定为16位。
  • 输出的二进制字符串结构符合IEEE 754半精度标准:
    • 第1位:符号位(0表示正数,1表示负数)
    • 第2-6位:5位指数位
    • 第7-16位:10位尾数位

内容的提问来源于stack exchange,提问作者jlove

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 03:35:45