UTILS.
100% trong trình duyệt
💾

Công cụ chuyển đổi dấu phẩy động IEEE-754

Chuyển một số thập phân sang/từ mẫu bit IEEE-754 đơn (32-bit) hoặc kép (64-bit) và mổ xẻ các trường dấu, số mũ và phần định trị.

Nhập một số hoặc mẫu bit ở trên.

Về công cụ này

Công cụ chuyển đổi dấu phẩy động IEEE-754 cho thấy chính xác cách một số được lưu trong bộ nhớ dưới dạng float độ chính xác đơn 32-bit hoặc kép 64-bit, và có thể đảo ngược một mẫu bit thô trở lại giá trị thập phân của nó. Nó dùng mảng có kiểu của JavaScript (Float32Array / DataView) nên mẫu bit là biểu diễn phần cứng thực sự, không phải xấp xỉ.

Ở chế độ xuôi, nó báo cáo mẫu dưới dạng thập lục phân và nhị phân chia thành ba trường: bit dấu, số mũ (8 bit với bias 127 cho float32, 11 bit với bias 1023 cho float64), và phần định trị (23 hoặc 52 bit). Nó cũng giải mã số mũ không thiên vị và phân loại giá trị là normal, subnormal, zero, infinity hoặc NaN. Quan trọng là nó in giá trị lưu trữ chính xác đọc ngược từ các bit — với float32 thường khác với những gì bạn gõ, làm cho sai số làm tròn dấu phẩy động trở nên hữu hình. Chẳng hạn 0.1 không được lưu chính xác ở cả hai độ chính xác.

Ở chế độ ngược, bạn dán một mẫu hex (có hoặc không có 0x) hoặc một chuỗi nhị phân đủ độ rộng và nó diễn giải lại các bit đó thành một float rồi hiển thị giá trị thập phân thu được cùng cách phân tách trường tương tự. Mọi thứ chạy cục bộ trong trình duyệt của bạn. Đây là công cụ đắc lực để hiểu việc làm tròn, so sánh độ chính xác đơn với kép, và kiểm tra các mã hóa đặc biệt cho ±0, ±∞ và NaN.

Câu hỏi thường gặp

Vì sao giá trị lưu trữ khác với những gì tôi gõ?
Hầu hết các phân số thập phân không thể biểu diễn chính xác trong dấu phẩy động nhị phân, nên giá trị biểu diễn được gần nhất được lưu. Công cụ đọc ngược các bit và hiển thị giá trị lưu trữ chính xác đó, phơi bày sai số làm tròn — đặc biệt ở độ chính xác đơn 32-bit.
Các trường được bố trí như thế nào?
Float32 dùng 1 bit dấu, 8 bit số mũ (bias 127) và 23 bit phần định trị; float64 dùng 1 bit dấu, 11 bit số mũ (bias 1023) và 52 bit phần định trị. Số mũ không thiên vị bằng số mũ thô trừ bias.
Zero, infinity và NaN được mã hóa như thế nào?
Một số mũ toàn số không với phần định trị bằng không là ±0, hoặc một subnormal nếu phần định trị khác không. Một số mũ toàn số một nghĩa là ±infinity khi phần định trị bằng không và NaN khi nó khác không. Công cụ gán nhãn cho từng loại.
Tôi có thể đi từ một mẫu bit trở lại một số không?
Có. Chuyển sang chế độ ngược và dán một mẫu 8-chữ-số-hex (float32) hoặc 16-chữ-số-hex (float64), hoặc một chuỗi nhị phân đủ 32- hoặc 64-bit, và công cụ diễn giải lại các bit chính xác đó thành một giá trị dấu phẩy động.

Công cụ khác