In [1]:
import struct
import sys
In [2]:
f_max = sys.float_info.max
In [3]:
print(f_max)
In [4]:
print(struct.pack('>d', f_max))
In [5]:
print(type(struct.pack('>d', f_max)))
In [6]:
print(struct.pack('<d', f_max))
In [7]:
print(struct.unpack('>Q', struct.pack('>d', f_max)))
In [8]:
print(type(struct.unpack('>Q', struct.pack('>d', f_max))))
In [9]:
print(struct.unpack('>Q', struct.pack('>d', f_max))[0])
In [10]:
print(type(struct.unpack('>Q', struct.pack('>d', f_max))[0]))
In [11]:
print(struct.unpack('>d', struct.pack('>d', f_max))[0])
In [12]:
print(hex(struct.unpack('>Q', struct.pack('>d', f_max))[0]))
In [13]:
print(type(hex(struct.unpack('>Q', struct.pack('>d', f_max))[0])))
In [14]:
def double_to_hex(f):
return hex(struct.unpack('>Q', struct.pack('>d', f))[0])
In [15]:
print(double_to_hex(f_max))
In [16]:
print(double_to_hex(42.195))
In [17]:
print(double_to_hex(1e500))
In [18]:
print(double_to_hex(1e-500))
In [19]:
print(int(double_to_hex(f_max), 16))
In [20]:
print(bin(int(double_to_hex(f_max), 16)))
In [21]:
print(oct(int(double_to_hex(f_max), 16)))
In [22]:
def double_to_bin(f):
return bin(struct.unpack('>Q', struct.pack('>d', f))[0])
In [23]:
def double_to_oct(f):
return oct(struct.unpack('>Q', struct.pack('>d', f))[0])
In [24]:
print(double_to_bin(f_max))
In [25]:
print(double_to_oct(f_max))
In [26]:
def float_to_hex(f):
return hex(struct.unpack('>I', struct.pack('>f', f))[0])
In [27]:
print(float_to_hex(42.195))