Lý lịch
Định dạng dấu phẩy động chính xác kép của IEEE 754 là cách biểu diễn các số thực với 64 bit. Nó trông giống như sau:
![]()
Một số thực nđược chuyển đổi thành một doubletheo cách sau:
- Bit dấu
slà 0 nếu số dương, 1 nếu không. - Giá trị tuyệt đối của
nđược biểu diễn dưới dạng2**y * 1.xxx, tức là sức mạnh gấp 2 lần một cơ sở . - Số mũ
elày( lũy thừa của 2) trừ 1023. - Phân số
flàxxxphần (phần phân đoạn của cơ sở), lấy 52 bit đáng kể nhất.
Ngược lại, một mẫu bit (được xác định bằng dấu s, số mũ evà phân số f, mỗi số nguyên) đại diện cho số:
(s ? -1 : 1) * 2 ** (e - 1023) * (1 + f / (2 ** 52))
Thử thách
Cho một số thực n, xuất ra phần phân số 52 bit của doublebiểu diễn ndưới dạng một số nguyên.
Các trường hợp thử nghiệm
0.0 => 0
1.2 => 900719925474099 (hex 3333333333333)
3.1 => 2476979795053773 (hex 8cccccccccccd)
3.5 => 3377699720527872 (hex c000000000000)
10.0 => 1125899906842624 (hex 4000000000000)
1234567.0 => 798825262350336 (hex 2d68700000000)
1e-256 => 2258570371166019 (hex 8062864ac6f43)
1e+256 => 1495187628212028 (hex 54fdd7f73bf3c)
-0.0 => 0
-1.2 => 900719925474099 (hex 3333333333333)
-3.1 => 2476979795053773 (hex 8cccccccccccd)
-3.5 => 3377699720527872 (hex c000000000000)
-10.0 => 1125899906842624 (hex 4000000000000)
-1234567.0 => 798825262350336 (hex 2d68700000000)
-1e-256 => 2258570371166019 (hex 8062864ac6f43)
-1e+256 => 1495187628212028 (hex 54fdd7f73bf3c)
Bạn có thể kiểm tra các số khác bằng cách sử dụng tham chiếu C này sử dụng các trường bit và liên kết.
Lưu ý rằng câu trả lời dự kiến là giống nhau cho +nvà -ncho bất kỳ số nào n.
Đầu vào và đầu ra
Quy tắc chuẩn áp dụng.
Định dạng đầu vào được chấp nhận:
- Một số dấu phẩy động, ít nhất là có
doubleđộ chính xác trong nội bộ - Một chuỗi đại diện cho số ở dạng thập phân (bạn không cần hỗ trợ ký hiệu khoa học, vì bạn có thể sử dụng
1000...00hoặc0.0000...01làm đầu vào)
Đối với đầu ra, một lỗi làm tròn ở bit quan trọng nhất có thể chấp nhận được.
Điều kiện chiến thắng
Đây là mã golf , vì vậy các byte thấp nhất trong mỗi ngôn ngữ sẽ thắng.