擅长:python、mysql、java
<p>使用工会:</p>
<pre><code>import ctypes as ct
class Convert(ct.Union):
_fields_ = (("my_bytes", ct.c_char * ct.sizeof(ct.c_float)),
("my_float", ct.c_float))
data_to_convert = b'\xd8\x0fI@'
conv = Convert()
conv.my_bytes = data_to_convert
print(conv.my_float) # prints 3.141592025756836
</code></pre>
<p>在进行转换之前,您可能还需要检查长度。如果您尝试使用太长的<em>字节序列</em>,如果没有这样的检查,您将得到一个<code>ValueError</code>,但是如果您使用太短的<em>字节序列,它将不会提醒您。(类型检查将自动为您完成。)</p>
<pre><code>if len(data_to_convert) != len(conv.my_bytes):
raise ValueError
</code></pre>