Để lấy số bit trong phần mũ của biểu diễn số thực dấu phẩy động, hãy sử dụng thuộc tính iexp của phương thức numpy.finfo() trong NumPy Python. Tham số đầu tiên là kiểu float, tức là kiểu dữ liệu float cần lấy thông tin.
Các bước
Trước tiên, nhập thư viện cần thiết:
import numpy as np
Kiểm tra kiểu float16. Thuộc tính iexp trả về số bit trong phần mũ. min là giá trị nhỏ nhất của kiểu dữ liệu, max là giá trị lớn nhất:
a = np.finfo(np.float16(45.9))
print("Số bit phần mũ kiểu float16...\n", a.iexp)
print("Giá trị nhỏ nhất kiểu float16...\n", a.min)
print("Giá trị lớn nhất kiểu float16...\n", a.max)
Kiểm tra kiểu float32 với các instance:
b = np.finfo(np.float32(22.3))
print("\nSố bit phần mũ kiểu float32...\n", b.iexp)
print("Giá trị nhỏ nhất kiểu float32...\n", b.min)
print("Giá trị lớn nhất kiểu float32...\n", b.max)
Kiểm tra kiểu float64 (float mặc định) với các instance:
c = np.finfo(np.float64(29.2))
print("\nSố bit phần mũ kiểu float64...\n", c.iexp)
print("Giá trị nhỏ nhất kiểu float64...\n", c.min)
print("Giá trị lớn nhất kiểu float64...\n", c.max)
Ví dụ hoàn chỉnh
import numpy as np
# Lấy số bit phần mũ của biểu diễn số thực
a = np.finfo(np.float16(45.9))
print("Số bit phần mũ kiểu float16...\n", a.iexp)
print("Giá trị nhỏ nhất kiểu float16...\n", a.min)
print("Giá trị lớn nhất kiểu float16...\n", a.max)
b = np.finfo(np.float32(22.3))
print("\nSố bit phần mũ kiểu float32...\n", b.iexp)
print("Giá trị nhỏ nhất kiểu float32...\n", b.min)
print("Giá trị lớn nhất kiểu float32...\n", b.max)
c = np.finfo(np.float64(29.2))
print("\nSố bit phần mũ kiểu float64...\n", c.iexp)
print("Giá trị nhỏ nhất kiểu float64...\n", c.min)
print("Giá trị lớn nhất kiểu float64...\n", c.max)
Kết quả
Số bit phần mũ kiểu float16... 5 Giá trị nhỏ nhất kiểu float16... -65500.0 Giá trị lớn nhất kiểu float16... 65500.0 Số bit phần mũ kiểu float32... 8 Giá trị nhỏ nhất kiểu float32... -3.4028235e+38 Giá trị lớn nhất kiểu float32... 3.4028235e+38 Số bit phần mũ kiểu float64... 11 Giá trị nhỏ nhất kiểu float64... -1.7976931348623157e+308 Giá trị lớn nhất kiểu float64... 1.7976931348623157e+308