mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-27 03:11:52 +01:00
cc36ccd13b
strings and floating point.
1469 lines
39 KiB
Plaintext
1469 lines
39 KiB
Plaintext
|
|
Input: 1.23
|
|
|
|
strtoQ consumes 4 bytes and returns 17
|
|
with bits = #3fff3ae1 47ae147a e147ae14 7ae147ae
|
|
printf("%.35Lg") gives 1.23
|
|
g_Qfmt(0) gives 4 bytes: "1.23"
|
|
|
|
strtoIQ returns 17, consuming 4 bytes.
|
|
fI[0] = #3fff3ae1 47ae147a e147ae14 7ae147ae
|
|
= 1.23
|
|
fI[1] = #3fff3ae1 47ae147a e147ae14 7ae147af
|
|
= 1.2300000000000000000000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23e+20
|
|
|
|
strtoQ consumes 8 bytes and returns 1
|
|
with bits = #4041aabd f2145b43 0 0
|
|
printf("%.35Lg") gives 123000000000000000000
|
|
g_Qfmt(0) gives 8 bytes: "1.23e+20"
|
|
|
|
strtoIQ returns 1, consuming 8 bytes.
|
|
fI[0] == fI[1] = #4041aabd f2145b43 0 0
|
|
= 123000000000000000000
|
|
|
|
|
|
Input: 1.23e-20
|
|
|
|
strtoQ consumes 8 bytes and returns 17
|
|
with bits = #3fbcd0ae 4cf76753 9e4cbca ad934841
|
|
printf("%.35Lg") gives 1.2299999999999999999999999999999999e-20
|
|
g_Qfmt(0) gives 8 bytes: "1.23e-20"
|
|
|
|
strtoIQ returns 17, consuming 8 bytes.
|
|
fI[0] = #3fbcd0ae 4cf76753 9e4cbca ad934841
|
|
= 1.2299999999999999999999999999999999e-20
|
|
fI[1] = #3fbcd0ae 4cf76753 9e4cbca ad934842
|
|
= 1.2300000000000000000000000000000001e-20
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23456789
|
|
|
|
strtoQ consumes 10 bytes and returns 17
|
|
with bits = #3fff3c0c a4283de1 b7eb6945 1304948f
|
|
printf("%.35Lg") gives 1.2345678899999999999999999999999999
|
|
g_Qfmt(0) gives 10 bytes: "1.23456789"
|
|
|
|
strtoIQ returns 17, consuming 10 bytes.
|
|
fI[0] = #3fff3c0c a4283de1 b7eb6945 1304948f
|
|
= 1.2345678899999999999999999999999999
|
|
fI[1] = #3fff3c0c a4283de1 b7eb6945 13049490
|
|
= 1.2345678900000000000000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23456589e+20
|
|
|
|
strtoQ consumes 14 bytes and returns 1
|
|
with bits = #4041ac53 7a660b99 74000000 0
|
|
printf("%.35Lg") gives 123456589000000000000
|
|
g_Qfmt(0) gives 14 bytes: "1.23456589e+20"
|
|
|
|
strtoIQ returns 1, consuming 14 bytes.
|
|
fI[0] == fI[1] = #4041ac53 7a660b99 74000000 0
|
|
= 123456589000000000000
|
|
|
|
|
|
Input: 1.23e+30
|
|
|
|
strtoQ consumes 8 bytes and returns 1
|
|
with bits = #4062f0cb 4e8fb79 4945600 0
|
|
printf("%.35Lg") gives 1230000000000000000000000000000
|
|
g_Qfmt(0) gives 8 bytes: "1.23e+30"
|
|
|
|
strtoIQ returns 1, consuming 8 bytes.
|
|
fI[0] == fI[1] = #4062f0cb 4e8fb79 4945600 0
|
|
= 1230000000000000000000000000000
|
|
|
|
|
|
Input: 1.23e-30
|
|
|
|
strtoQ consumes 8 bytes and returns 17
|
|
with bits = #3f9b8f28 66f5010a a9d63f9e d7e8ba14
|
|
printf("%.35Lg") gives 1.2299999999999999999999999999999999e-30
|
|
g_Qfmt(0) gives 8 bytes: "1.23e-30"
|
|
|
|
strtoIQ returns 17, consuming 8 bytes.
|
|
fI[0] = #3f9b8f28 66f5010a a9d63f9e d7e8ba14
|
|
= 1.2299999999999999999999999999999999e-30
|
|
fI[1] = #3f9b8f28 66f5010a a9d63f9e d7e8ba15
|
|
= 1.2300000000000000000000000000000001e-30
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23456789e-20
|
|
|
|
strtoQ consumes 14 bytes and returns 33
|
|
with bits = #3fbcd268 1471e7ad a6a4a029 d86c1fa2
|
|
printf("%.35Lg") gives 1.2345678900000000000000000000000001e-20
|
|
g_Qfmt(0) gives 14 bytes: "1.23456789e-20"
|
|
|
|
strtoIQ returns 33, consuming 14 bytes.
|
|
fI[0] = #3fbcd268 1471e7ad a6a4a029 d86c1fa1
|
|
= 1.2345678899999999999999999999999999e-20
|
|
fI[1] = #3fbcd268 1471e7ad a6a4a029 d86c1fa2
|
|
= 1.2345678900000000000000000000000001e-20
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.23456789e-30
|
|
|
|
strtoQ consumes 14 bytes and returns 17
|
|
with bits = #3f9b90a3 e33bbd99 51f85855 5a6b19d4
|
|
printf("%.35Lg") gives 1.23456789e-30
|
|
g_Qfmt(0) gives 14 bytes: "1.23456789e-30"
|
|
|
|
strtoIQ returns 17, consuming 14 bytes.
|
|
fI[0] = #3f9b90a3 e33bbd99 51f85855 5a6b19d4
|
|
= 1.23456789e-30
|
|
fI[1] = #3f9b90a3 e33bbd99 51f85855 5a6b19d5
|
|
= 1.2345678900000000000000000000000001e-30
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789
|
|
|
|
strtoQ consumes 20 bytes and returns 17
|
|
with bits = #3fff3c0c a428c59f b71a4194 68dd175b
|
|
printf("%.35Lg") gives 1.234567890123456789
|
|
g_Qfmt(0) gives 20 bytes: "1.234567890123456789"
|
|
|
|
strtoIQ returns 17, consuming 20 bytes.
|
|
fI[0] = #3fff3c0c a428c59f b71a4194 68dd175b
|
|
= 1.234567890123456789
|
|
fI[1] = #3fff3c0c a428c59f b71a4194 68dd175c
|
|
= 1.2345678901234567890000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23456789012345678901234567890123456789
|
|
|
|
strtoQ consumes 40 bytes and returns 17
|
|
with bits = #3fff3c0c a428c59f b71a7be1 6b6b6d5b
|
|
printf("%.35Lg") gives 1.2345678901234567890123456789012346
|
|
g_Qfmt(0) gives 36 bytes: "1.2345678901234567890123456789012346"
|
|
|
|
strtoIQ returns 17, consuming 40 bytes.
|
|
fI[0] = #3fff3c0c a428c59f b71a7be1 6b6b6d5b
|
|
= 1.2345678901234567890123456789012346
|
|
fI[1] = #3fff3c0c a428c59f b71a7be1 6b6b6d5c
|
|
= 1.2345678901234567890123456789012347
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23e306
|
|
|
|
strtoQ consumes 8 bytes and returns 33
|
|
with bits = #43f7c067 6cd1c61f 4daac5f1 e9fa3b55
|
|
printf("%.35Lg") gives 1.23e+306
|
|
g_Qfmt(0) gives 9 bytes: "1.23e+306"
|
|
|
|
strtoIQ returns 33, consuming 8 bytes.
|
|
fI[0] = #43f7c067 6cd1c61f 4daac5f1 e9fa3b54
|
|
= 1.2299999999999999999999999999999999e+306
|
|
fI[1] = #43f7c067 6cd1c61f 4daac5f1 e9fa3b55
|
|
= 1.23e+306
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.23e-306
|
|
|
|
strtoQ consumes 9 bytes and returns 17
|
|
with bits = #3c06ba3b 85da396e 7e496ab7 d233c3dd
|
|
printf("%.35Lg") gives 1.23e-306
|
|
g_Qfmt(0) gives 9 bytes: "1.23e-306"
|
|
|
|
strtoIQ returns 17, consuming 9 bytes.
|
|
fI[0] = #3c06ba3b 85da396e 7e496ab7 d233c3dd
|
|
= 1.23e-306
|
|
fI[1] = #3c06ba3b 85da396e 7e496ab7 d233c3de
|
|
= 1.2300000000000000000000000000000001e-306
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23e-320
|
|
|
|
strtoQ consumes 9 bytes and returns 33
|
|
with bits = #3bd83731 86e30898 7e33b2e8 355f847b
|
|
printf("%.35Lg") gives 1.2300000000000000000000000000000001e-320
|
|
g_Qfmt(0) gives 9 bytes: "1.23e-320"
|
|
|
|
strtoIQ returns 33, consuming 9 bytes.
|
|
fI[0] = #3bd83731 86e30898 7e33b2e8 355f847a
|
|
= 1.2299999999999999999999999999999999e-320
|
|
fI[1] = #3bd83731 86e30898 7e33b2e8 355f847b
|
|
= 1.2300000000000000000000000000000001e-320
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.23e-20
|
|
|
|
strtoQ consumes 8 bytes and returns 17
|
|
with bits = #3fbcd0ae 4cf76753 9e4cbca ad934841
|
|
printf("%.35Lg") gives 1.2299999999999999999999999999999999e-20
|
|
g_Qfmt(0) gives 8 bytes: "1.23e-20"
|
|
|
|
strtoIQ returns 17, consuming 8 bytes.
|
|
fI[0] = #3fbcd0ae 4cf76753 9e4cbca ad934841
|
|
= 1.2299999999999999999999999999999999e-20
|
|
fI[1] = #3fbcd0ae 4cf76753 9e4cbca ad934842
|
|
= 1.2300000000000000000000000000000001e-20
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23456789e307
|
|
|
|
strtoQ consumes 14 bytes and returns 17
|
|
with bits = #43fb194b 14bdaecd bcea468c 902464cf
|
|
printf("%.35Lg") gives 1.2345678899999999999999999999999999e+307
|
|
g_Qfmt(0) gives 15 bytes: "1.23456789e+307"
|
|
|
|
strtoIQ returns 17, consuming 14 bytes.
|
|
fI[0] = #43fb194b 14bdaecd bcea468c 902464cf
|
|
= 1.2345678899999999999999999999999999e+307
|
|
fI[1] = #43fb194b 14bdaecd bcea468c 902464d0
|
|
= 1.2345678900000000000000000000000001e+307
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23456589e-307
|
|
|
|
strtoQ consumes 15 bytes and returns 17
|
|
with bits = #3c036319 6bb9845f a6d234e3 39163574
|
|
printf("%.35Lg") gives 1.23456589e-307
|
|
g_Qfmt(0) gives 15 bytes: "1.23456589e-307"
|
|
|
|
strtoIQ returns 17, consuming 15 bytes.
|
|
fI[0] = #3c036319 6bb9845f a6d234e3 39163574
|
|
= 1.23456589e-307
|
|
fI[1] = #3c036319 6bb9845f a6d234e3 39163575
|
|
= 1.2345658900000000000000000000000002e-307
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789
|
|
|
|
strtoQ consumes 20 bytes and returns 17
|
|
with bits = #3fff3c0c a428c59f b71a4194 68dd175b
|
|
printf("%.35Lg") gives 1.234567890123456789
|
|
g_Qfmt(0) gives 20 bytes: "1.234567890123456789"
|
|
|
|
strtoIQ returns 17, consuming 20 bytes.
|
|
fI[0] = #3fff3c0c a428c59f b71a4194 68dd175b
|
|
= 1.234567890123456789
|
|
fI[1] = #3fff3c0c a428c59f b71a4194 68dd175c
|
|
= 1.2345678901234567890000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789e301
|
|
|
|
strtoQ consumes 24 bytes and returns 33
|
|
with bits = #43e726f5 175f5641 3017ea80 763990ef
|
|
printf("%.35Lg") gives 1.2345678901234567890000000000000001e+301
|
|
g_Qfmt(0) gives 25 bytes: "1.234567890123456789e+301"
|
|
|
|
strtoIQ returns 33, consuming 24 bytes.
|
|
fI[0] = #43e726f5 175f5641 3017ea80 763990ee
|
|
= 1.2345678901234567889999999999999999e+301
|
|
fI[1] = #43e726f5 175f5641 3017ea80 763990ef
|
|
= 1.2345678901234567890000000000000001e+301
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789e-301
|
|
|
|
strtoQ consumes 25 bytes and returns 17
|
|
with bits = #3c1752a6 4e34ba0d 35b19b04 3222fce5
|
|
printf("%.35Lg") gives 1.234567890123456789e-301
|
|
g_Qfmt(0) gives 25 bytes: "1.234567890123456789e-301"
|
|
|
|
strtoIQ returns 17, consuming 25 bytes.
|
|
fI[0] = #3c1752a6 4e34ba0d 35b19b04 3222fce5
|
|
= 1.234567890123456789e-301
|
|
fI[1] = #3c1752a6 4e34ba0d 35b19b04 3222fce6
|
|
= 1.2345678901234567890000000000000002e-301
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789e-321
|
|
|
|
strtoQ consumes 25 bytes and returns 17
|
|
with bits = #3bd4f3c2 3699d4db 99d1ea94 2fecd7de
|
|
printf("%.35Lg") gives 1.234567890123456789e-321
|
|
g_Qfmt(0) gives 25 bytes: "1.234567890123456789e-321"
|
|
|
|
strtoIQ returns 17, consuming 25 bytes.
|
|
fI[0] = #3bd4f3c2 3699d4db 99d1ea94 2fecd7de
|
|
= 1.234567890123456789e-321
|
|
fI[1] = #3bd4f3c2 3699d4db 99d1ea94 2fecd7df
|
|
= 1.2345678901234567890000000000000001e-321
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1e23
|
|
|
|
strtoQ consumes 4 bytes and returns 1
|
|
with bits = #404b52d0 2c7e14af 68000000 0
|
|
printf("%.35Lg") gives 100000000000000000000000
|
|
g_Qfmt(0) gives 5 bytes: "1e+23"
|
|
|
|
strtoIQ returns 1, consuming 4 bytes.
|
|
fI[0] == fI[1] = #404b52d0 2c7e14af 68000000 0
|
|
= 100000000000000000000000
|
|
|
|
|
|
Input: 1e310
|
|
|
|
strtoQ consumes 5 bytes and returns 33
|
|
with bits = #4404bd03 c8140697 9e9ff00e fefd4cbd
|
|
printf("%.35Lg") gives 1e+310
|
|
g_Qfmt(0) gives 6 bytes: "1e+310"
|
|
|
|
strtoIQ returns 33, consuming 5 bytes.
|
|
fI[0] = #4404bd03 c8140697 9e9ff00e fefd4cbc
|
|
= 9.9999999999999999999999999999999992e+309
|
|
fI[1] = #4404bd03 c8140697 9e9ff00e fefd4cbd
|
|
= 1e+310
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 9.0259718793241475e-277
|
|
|
|
strtoQ consumes 23 bytes and returns 17
|
|
with bits = #3c69ffff ffffffff f9ed5779 ac118fe1
|
|
printf("%.35Lg") gives 9.0259718793241474999999999999999997e-277
|
|
g_Qfmt(0) gives 23 bytes: "9.0259718793241475e-277"
|
|
|
|
strtoIQ returns 17, consuming 23 bytes.
|
|
fI[0] = #3c69ffff ffffffff f9ed5779 ac118fe1
|
|
= 9.0259718793241474999999999999999997e-277
|
|
fI[1] = #3c69ffff ffffffff f9ed5779 ac118fe2
|
|
= 9.0259718793241475000000000000000006e-277
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 9.025971879324147880346310405869e-277
|
|
|
|
strtoQ consumes 37 bytes and returns 33
|
|
with bits = #3c6a0000 0 0 9a
|
|
printf("%.35Lg") gives 9.0259718793241478803463104058690004e-277
|
|
g_Qfmt(0) gives 37 bytes: "9.025971879324147880346310405869e-277"
|
|
|
|
strtoIQ returns 33, consuming 37 bytes.
|
|
fI[0] = #3c6a0000 0 0 99
|
|
= 9.0259718793241478803463104058689987e-277
|
|
fI[1] = #3c6a0000 0 0 9a
|
|
= 9.0259718793241478803463104058690004e-277
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 9.025971879324147880346310405868e-277
|
|
|
|
strtoQ consumes 37 bytes and returns 17
|
|
with bits = #3c69ffff ffffffff ffffffff fffffcb5
|
|
printf("%.35Lg") gives 9.025971879324147880346310405868e-277
|
|
g_Qfmt(0) gives 37 bytes: "9.025971879324147880346310405868e-277"
|
|
|
|
strtoIQ returns 17, consuming 37 bytes.
|
|
fI[0] = #3c69ffff ffffffff ffffffff fffffcb5
|
|
= 9.025971879324147880346310405868e-277
|
|
fI[1] = #3c69ffff ffffffff ffffffff fffffcb6
|
|
= 9.0259718793241478803463104058680009e-277
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 2.2250738585072014e-308
|
|
|
|
strtoQ consumes 23 bytes and returns 33
|
|
with bits = #3c010000 0 8c304c cf867de0
|
|
printf("%.35Lg") gives 2.2250738585072014000000000000000001e-308
|
|
g_Qfmt(0) gives 23 bytes: "2.2250738585072014e-308"
|
|
|
|
strtoIQ returns 33, consuming 23 bytes.
|
|
fI[0] = #3c010000 0 8c304c cf867ddf
|
|
= 2.2250738585072013999999999999999997e-308
|
|
fI[1] = #3c010000 0 8c304c cf867de0
|
|
= 2.2250738585072014000000000000000001e-308
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 2.2250738585072013e-308
|
|
|
|
strtoQ consumes 23 bytes and returns 33
|
|
with bits = #3c00ffff ffffffff fa9e4c4f 4c1e8a10
|
|
printf("%.35Lg") gives 2.2250738585072013e-308
|
|
g_Qfmt(0) gives 23 bytes: "2.2250738585072013e-308"
|
|
|
|
strtoIQ returns 33, consuming 23 bytes.
|
|
fI[0] = #3c00ffff ffffffff fa9e4c4f 4c1e8a0f
|
|
= 2.2250738585072012999999999999999998e-308
|
|
fI[1] = #3c00ffff ffffffff fa9e4c4f 4c1e8a10
|
|
= 2.2250738585072013e-308
|
|
fI[1] == strtod
|
|
|
|
Rounding mode for strtor... changed from 1 (nearest) to 0 (toward zero)
|
|
|
|
Input: 1.1
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fff1999 99999999 99999999 99999999
|
|
printf("%.35Lg") gives 1.0999999999999999999999999999999999
|
|
g_Qfmt(0) gives 36 bytes: "1.0999999999999999999999999999999999"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fff1999 99999999 99999999 99999999
|
|
= 1.0999999999999999999999999999999999
|
|
fI[1] = #3fff1999 99999999 99999999 9999999a
|
|
= 1.1000000000000000000000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.1
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfff1999 99999999 99999999 99999999
|
|
printf("%.35Lg") gives -1.0999999999999999999999999999999999
|
|
g_Qfmt(0) gives 37 bytes: "-1.0999999999999999999999999999999999"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfff1999 99999999 99999999 9999999a
|
|
= -1.1000000000000000000000000000000001
|
|
fI[1] = #bfff1999 99999999 99999999 99999999
|
|
= -1.0999999999999999999999999999999999
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.2
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fff3333 33333333 33333333 33333333
|
|
printf("%.35Lg") gives 1.2
|
|
g_Qfmt(0) gives 3 bytes: "1.2"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fff3333 33333333 33333333 33333333
|
|
= 1.2
|
|
fI[1] = #3fff3333 33333333 33333333 33333334
|
|
= 1.2000000000000000000000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.2
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfff3333 33333333 33333333 33333333
|
|
printf("%.35Lg") gives -1.2
|
|
g_Qfmt(0) gives 4 bytes: "-1.2"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfff3333 33333333 33333333 33333334
|
|
= -1.2000000000000000000000000000000002
|
|
fI[1] = #bfff3333 33333333 33333333 33333333
|
|
= -1.2
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.3
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fff4ccc cccccccc cccccccc cccccccc
|
|
printf("%.35Lg") gives 1.2999999999999999999999999999999998
|
|
g_Qfmt(0) gives 36 bytes: "1.2999999999999999999999999999999998"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fff4ccc cccccccc cccccccc cccccccc
|
|
= 1.2999999999999999999999999999999998
|
|
fI[1] = #3fff4ccc cccccccc cccccccc cccccccd
|
|
= 1.3
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.3
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfff4ccc cccccccc cccccccc cccccccc
|
|
printf("%.35Lg") gives -1.2999999999999999999999999999999998
|
|
g_Qfmt(0) gives 37 bytes: "-1.2999999999999999999999999999999998"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfff4ccc cccccccc cccccccc cccccccd
|
|
= -1.3
|
|
fI[1] = #bfff4ccc cccccccc cccccccc cccccccc
|
|
= -1.2999999999999999999999999999999998
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.4
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fff6666 66666666 66666666 66666666
|
|
printf("%.35Lg") gives 1.3999999999999999999999999999999999
|
|
g_Qfmt(0) gives 3 bytes: "1.4"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fff6666 66666666 66666666 66666666
|
|
= 1.3999999999999999999999999999999999
|
|
fI[1] = #3fff6666 66666666 66666666 66666667
|
|
= 1.4000000000000000000000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.4
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfff6666 66666666 66666666 66666666
|
|
printf("%.35Lg") gives -1.3999999999999999999999999999999999
|
|
g_Qfmt(0) gives 4 bytes: "-1.4"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfff6666 66666666 66666666 66666667
|
|
= -1.4000000000000000000000000000000001
|
|
fI[1] = #bfff6666 66666666 66666666 66666666
|
|
= -1.3999999999999999999999999999999999
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.5
|
|
|
|
strtoQ consumes 3 bytes and returns 1
|
|
with bits = #3fff8000 0 0 0
|
|
printf("%.35Lg") gives 1.5
|
|
g_Qfmt(0) gives 3 bytes: "1.5"
|
|
|
|
strtoIQ returns 1, consuming 3 bytes.
|
|
fI[0] == fI[1] = #3fff8000 0 0 0
|
|
= 1.5
|
|
|
|
|
|
Input: -1.5
|
|
|
|
strtoQ consumes 4 bytes and returns 9
|
|
with bits = #bfff8000 0 0 0
|
|
printf("%.35Lg") gives -1.5
|
|
g_Qfmt(0) gives 4 bytes: "-1.5"
|
|
|
|
strtoIQ returns 9, consuming 4 bytes.
|
|
fI[0] == fI[1] = #bfff8000 0 0 0
|
|
= -1.5
|
|
|
|
|
|
Input: 1.6
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fff9999 99999999 99999999 99999999
|
|
printf("%.35Lg") gives 1.5999999999999999999999999999999999
|
|
g_Qfmt(0) gives 36 bytes: "1.5999999999999999999999999999999999"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fff9999 99999999 99999999 99999999
|
|
= 1.5999999999999999999999999999999999
|
|
fI[1] = #3fff9999 99999999 99999999 9999999a
|
|
= 1.6000000000000000000000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.6
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfff9999 99999999 99999999 99999999
|
|
printf("%.35Lg") gives -1.5999999999999999999999999999999999
|
|
g_Qfmt(0) gives 37 bytes: "-1.5999999999999999999999999999999999"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfff9999 99999999 99999999 9999999a
|
|
= -1.6000000000000000000000000000000001
|
|
fI[1] = #bfff9999 99999999 99999999 99999999
|
|
= -1.5999999999999999999999999999999999
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.7
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fffb333 33333333 33333333 33333333
|
|
printf("%.35Lg") gives 1.7
|
|
g_Qfmt(0) gives 3 bytes: "1.7"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fffb333 33333333 33333333 33333333
|
|
= 1.7
|
|
fI[1] = #3fffb333 33333333 33333333 33333334
|
|
= 1.7000000000000000000000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.7
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfffb333 33333333 33333333 33333333
|
|
printf("%.35Lg") gives -1.7
|
|
g_Qfmt(0) gives 4 bytes: "-1.7"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfffb333 33333333 33333333 33333334
|
|
= -1.7000000000000000000000000000000002
|
|
fI[1] = #bfffb333 33333333 33333333 33333333
|
|
= -1.7
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.8
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fffcccc cccccccc cccccccc cccccccc
|
|
printf("%.35Lg") gives 1.7999999999999999999999999999999998
|
|
g_Qfmt(0) gives 36 bytes: "1.7999999999999999999999999999999998"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fffcccc cccccccc cccccccc cccccccc
|
|
= 1.7999999999999999999999999999999998
|
|
fI[1] = #3fffcccc cccccccc cccccccc cccccccd
|
|
= 1.8
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.8
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfffcccc cccccccc cccccccc cccccccc
|
|
printf("%.35Lg") gives -1.7999999999999999999999999999999998
|
|
g_Qfmt(0) gives 37 bytes: "-1.7999999999999999999999999999999998"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfffcccc cccccccc cccccccc cccccccd
|
|
= -1.8
|
|
fI[1] = #bfffcccc cccccccc cccccccc cccccccc
|
|
= -1.7999999999999999999999999999999998
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.9
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fffe666 66666666 66666666 66666666
|
|
printf("%.35Lg") gives 1.8999999999999999999999999999999999
|
|
g_Qfmt(0) gives 3 bytes: "1.9"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fffe666 66666666 66666666 66666666
|
|
= 1.8999999999999999999999999999999999
|
|
fI[1] = #3fffe666 66666666 66666666 66666667
|
|
= 1.9000000000000000000000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.9
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfffe666 66666666 66666666 66666666
|
|
printf("%.35Lg") gives -1.8999999999999999999999999999999999
|
|
g_Qfmt(0) gives 4 bytes: "-1.9"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfffe666 66666666 66666666 66666667
|
|
= -1.9000000000000000000000000000000001
|
|
fI[1] = #bfffe666 66666666 66666666 66666666
|
|
= -1.8999999999999999999999999999999999
|
|
fI[1] == strtod
|
|
|
|
Rounding mode for strtor... changed from 0 (toward zero) to 1 (nearest)
|
|
|
|
Input: 1.1
|
|
|
|
strtoQ consumes 3 bytes and returns 33
|
|
with bits = #3fff1999 99999999 99999999 9999999a
|
|
printf("%.35Lg") gives 1.1000000000000000000000000000000001
|
|
g_Qfmt(0) gives 3 bytes: "1.1"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fff1999 99999999 99999999 99999999
|
|
= 1.0999999999999999999999999999999999
|
|
fI[1] = #3fff1999 99999999 99999999 9999999a
|
|
= 1.1000000000000000000000000000000001
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.1
|
|
|
|
strtoQ consumes 4 bytes and returns 41
|
|
with bits = #bfff1999 99999999 99999999 9999999a
|
|
printf("%.35Lg") gives -1.1000000000000000000000000000000001
|
|
g_Qfmt(0) gives 4 bytes: "-1.1"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfff1999 99999999 99999999 9999999a
|
|
= -1.1000000000000000000000000000000001
|
|
fI[1] = #bfff1999 99999999 99999999 99999999
|
|
= -1.0999999999999999999999999999999999
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.2
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fff3333 33333333 33333333 33333333
|
|
printf("%.35Lg") gives 1.2
|
|
g_Qfmt(0) gives 3 bytes: "1.2"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fff3333 33333333 33333333 33333333
|
|
= 1.2
|
|
fI[1] = #3fff3333 33333333 33333333 33333334
|
|
= 1.2000000000000000000000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.2
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfff3333 33333333 33333333 33333333
|
|
printf("%.35Lg") gives -1.2
|
|
g_Qfmt(0) gives 4 bytes: "-1.2"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfff3333 33333333 33333333 33333334
|
|
= -1.2000000000000000000000000000000002
|
|
fI[1] = #bfff3333 33333333 33333333 33333333
|
|
= -1.2
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.3
|
|
|
|
strtoQ consumes 3 bytes and returns 33
|
|
with bits = #3fff4ccc cccccccc cccccccc cccccccd
|
|
printf("%.35Lg") gives 1.3
|
|
g_Qfmt(0) gives 3 bytes: "1.3"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fff4ccc cccccccc cccccccc cccccccc
|
|
= 1.2999999999999999999999999999999998
|
|
fI[1] = #3fff4ccc cccccccc cccccccc cccccccd
|
|
= 1.3
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.3
|
|
|
|
strtoQ consumes 4 bytes and returns 41
|
|
with bits = #bfff4ccc cccccccc cccccccc cccccccd
|
|
printf("%.35Lg") gives -1.3
|
|
g_Qfmt(0) gives 4 bytes: "-1.3"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfff4ccc cccccccc cccccccc cccccccd
|
|
= -1.3
|
|
fI[1] = #bfff4ccc cccccccc cccccccc cccccccc
|
|
= -1.2999999999999999999999999999999998
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.4
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fff6666 66666666 66666666 66666666
|
|
printf("%.35Lg") gives 1.3999999999999999999999999999999999
|
|
g_Qfmt(0) gives 3 bytes: "1.4"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fff6666 66666666 66666666 66666666
|
|
= 1.3999999999999999999999999999999999
|
|
fI[1] = #3fff6666 66666666 66666666 66666667
|
|
= 1.4000000000000000000000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.4
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfff6666 66666666 66666666 66666666
|
|
printf("%.35Lg") gives -1.3999999999999999999999999999999999
|
|
g_Qfmt(0) gives 4 bytes: "-1.4"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfff6666 66666666 66666666 66666667
|
|
= -1.4000000000000000000000000000000001
|
|
fI[1] = #bfff6666 66666666 66666666 66666666
|
|
= -1.3999999999999999999999999999999999
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.5
|
|
|
|
strtoQ consumes 3 bytes and returns 1
|
|
with bits = #3fff8000 0 0 0
|
|
printf("%.35Lg") gives 1.5
|
|
g_Qfmt(0) gives 3 bytes: "1.5"
|
|
|
|
strtoIQ returns 1, consuming 3 bytes.
|
|
fI[0] == fI[1] = #3fff8000 0 0 0
|
|
= 1.5
|
|
|
|
|
|
Input: -1.5
|
|
|
|
strtoQ consumes 4 bytes and returns 9
|
|
with bits = #bfff8000 0 0 0
|
|
printf("%.35Lg") gives -1.5
|
|
g_Qfmt(0) gives 4 bytes: "-1.5"
|
|
|
|
strtoIQ returns 9, consuming 4 bytes.
|
|
fI[0] == fI[1] = #bfff8000 0 0 0
|
|
= -1.5
|
|
|
|
|
|
Input: 1.6
|
|
|
|
strtoQ consumes 3 bytes and returns 33
|
|
with bits = #3fff9999 99999999 99999999 9999999a
|
|
printf("%.35Lg") gives 1.6000000000000000000000000000000001
|
|
g_Qfmt(0) gives 3 bytes: "1.6"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fff9999 99999999 99999999 99999999
|
|
= 1.5999999999999999999999999999999999
|
|
fI[1] = #3fff9999 99999999 99999999 9999999a
|
|
= 1.6000000000000000000000000000000001
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.6
|
|
|
|
strtoQ consumes 4 bytes and returns 41
|
|
with bits = #bfff9999 99999999 99999999 9999999a
|
|
printf("%.35Lg") gives -1.6000000000000000000000000000000001
|
|
g_Qfmt(0) gives 4 bytes: "-1.6"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfff9999 99999999 99999999 9999999a
|
|
= -1.6000000000000000000000000000000001
|
|
fI[1] = #bfff9999 99999999 99999999 99999999
|
|
= -1.5999999999999999999999999999999999
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.7
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fffb333 33333333 33333333 33333333
|
|
printf("%.35Lg") gives 1.7
|
|
g_Qfmt(0) gives 3 bytes: "1.7"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fffb333 33333333 33333333 33333333
|
|
= 1.7
|
|
fI[1] = #3fffb333 33333333 33333333 33333334
|
|
= 1.7000000000000000000000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.7
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfffb333 33333333 33333333 33333333
|
|
printf("%.35Lg") gives -1.7
|
|
g_Qfmt(0) gives 4 bytes: "-1.7"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfffb333 33333333 33333333 33333334
|
|
= -1.7000000000000000000000000000000002
|
|
fI[1] = #bfffb333 33333333 33333333 33333333
|
|
= -1.7
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.8
|
|
|
|
strtoQ consumes 3 bytes and returns 33
|
|
with bits = #3fffcccc cccccccc cccccccc cccccccd
|
|
printf("%.35Lg") gives 1.8
|
|
g_Qfmt(0) gives 3 bytes: "1.8"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fffcccc cccccccc cccccccc cccccccc
|
|
= 1.7999999999999999999999999999999998
|
|
fI[1] = #3fffcccc cccccccc cccccccc cccccccd
|
|
= 1.8
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.8
|
|
|
|
strtoQ consumes 4 bytes and returns 41
|
|
with bits = #bfffcccc cccccccc cccccccc cccccccd
|
|
printf("%.35Lg") gives -1.8
|
|
g_Qfmt(0) gives 4 bytes: "-1.8"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfffcccc cccccccc cccccccc cccccccd
|
|
= -1.8
|
|
fI[1] = #bfffcccc cccccccc cccccccc cccccccc
|
|
= -1.7999999999999999999999999999999998
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.9
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fffe666 66666666 66666666 66666666
|
|
printf("%.35Lg") gives 1.8999999999999999999999999999999999
|
|
g_Qfmt(0) gives 3 bytes: "1.9"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fffe666 66666666 66666666 66666666
|
|
= 1.8999999999999999999999999999999999
|
|
fI[1] = #3fffe666 66666666 66666666 66666667
|
|
= 1.9000000000000000000000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.9
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfffe666 66666666 66666666 66666666
|
|
printf("%.35Lg") gives -1.8999999999999999999999999999999999
|
|
g_Qfmt(0) gives 4 bytes: "-1.9"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfffe666 66666666 66666666 66666667
|
|
= -1.9000000000000000000000000000000001
|
|
fI[1] = #bfffe666 66666666 66666666 66666666
|
|
= -1.8999999999999999999999999999999999
|
|
fI[1] == strtod
|
|
|
|
Rounding mode for strtor... changed from 1 (nearest) to 2 (toward +Infinity)
|
|
|
|
Input: 1.1
|
|
|
|
strtoQ consumes 3 bytes and returns 33
|
|
with bits = #3fff1999 99999999 99999999 9999999a
|
|
printf("%.35Lg") gives 1.1000000000000000000000000000000001
|
|
g_Qfmt(0) gives 3 bytes: "1.1"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fff1999 99999999 99999999 99999999
|
|
= 1.0999999999999999999999999999999999
|
|
fI[1] = #3fff1999 99999999 99999999 9999999a
|
|
= 1.1000000000000000000000000000000001
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.1
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfff1999 99999999 99999999 99999999
|
|
printf("%.35Lg") gives -1.0999999999999999999999999999999999
|
|
g_Qfmt(0) gives 37 bytes: "-1.0999999999999999999999999999999999"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfff1999 99999999 99999999 9999999a
|
|
= -1.1000000000000000000000000000000001
|
|
fI[1] = #bfff1999 99999999 99999999 99999999
|
|
= -1.0999999999999999999999999999999999
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.2
|
|
|
|
strtoQ consumes 3 bytes and returns 33
|
|
with bits = #3fff3333 33333333 33333333 33333334
|
|
printf("%.35Lg") gives 1.2000000000000000000000000000000002
|
|
g_Qfmt(0) gives 36 bytes: "1.2000000000000000000000000000000002"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fff3333 33333333 33333333 33333333
|
|
= 1.2
|
|
fI[1] = #3fff3333 33333333 33333333 33333334
|
|
= 1.2000000000000000000000000000000002
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.2
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfff3333 33333333 33333333 33333333
|
|
printf("%.35Lg") gives -1.2
|
|
g_Qfmt(0) gives 4 bytes: "-1.2"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfff3333 33333333 33333333 33333334
|
|
= -1.2000000000000000000000000000000002
|
|
fI[1] = #bfff3333 33333333 33333333 33333333
|
|
= -1.2
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.3
|
|
|
|
strtoQ consumes 3 bytes and returns 33
|
|
with bits = #3fff4ccc cccccccc cccccccc cccccccd
|
|
printf("%.35Lg") gives 1.3
|
|
g_Qfmt(0) gives 3 bytes: "1.3"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fff4ccc cccccccc cccccccc cccccccc
|
|
= 1.2999999999999999999999999999999998
|
|
fI[1] = #3fff4ccc cccccccc cccccccc cccccccd
|
|
= 1.3
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.3
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfff4ccc cccccccc cccccccc cccccccc
|
|
printf("%.35Lg") gives -1.2999999999999999999999999999999998
|
|
g_Qfmt(0) gives 37 bytes: "-1.2999999999999999999999999999999998"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfff4ccc cccccccc cccccccc cccccccd
|
|
= -1.3
|
|
fI[1] = #bfff4ccc cccccccc cccccccc cccccccc
|
|
= -1.2999999999999999999999999999999998
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.4
|
|
|
|
strtoQ consumes 3 bytes and returns 33
|
|
with bits = #3fff6666 66666666 66666666 66666667
|
|
printf("%.35Lg") gives 1.4000000000000000000000000000000001
|
|
g_Qfmt(0) gives 36 bytes: "1.4000000000000000000000000000000001"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fff6666 66666666 66666666 66666666
|
|
= 1.3999999999999999999999999999999999
|
|
fI[1] = #3fff6666 66666666 66666666 66666667
|
|
= 1.4000000000000000000000000000000001
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.4
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfff6666 66666666 66666666 66666666
|
|
printf("%.35Lg") gives -1.3999999999999999999999999999999999
|
|
g_Qfmt(0) gives 4 bytes: "-1.4"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfff6666 66666666 66666666 66666667
|
|
= -1.4000000000000000000000000000000001
|
|
fI[1] = #bfff6666 66666666 66666666 66666666
|
|
= -1.3999999999999999999999999999999999
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.5
|
|
|
|
strtoQ consumes 3 bytes and returns 1
|
|
with bits = #3fff8000 0 0 0
|
|
printf("%.35Lg") gives 1.5
|
|
g_Qfmt(0) gives 3 bytes: "1.5"
|
|
|
|
strtoIQ returns 1, consuming 3 bytes.
|
|
fI[0] == fI[1] = #3fff8000 0 0 0
|
|
= 1.5
|
|
|
|
|
|
Input: -1.5
|
|
|
|
strtoQ consumes 4 bytes and returns 9
|
|
with bits = #bfff8000 0 0 0
|
|
printf("%.35Lg") gives -1.5
|
|
g_Qfmt(0) gives 4 bytes: "-1.5"
|
|
|
|
strtoIQ returns 9, consuming 4 bytes.
|
|
fI[0] == fI[1] = #bfff8000 0 0 0
|
|
= -1.5
|
|
|
|
|
|
Input: 1.6
|
|
|
|
strtoQ consumes 3 bytes and returns 33
|
|
with bits = #3fff9999 99999999 99999999 9999999a
|
|
printf("%.35Lg") gives 1.6000000000000000000000000000000001
|
|
g_Qfmt(0) gives 3 bytes: "1.6"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fff9999 99999999 99999999 99999999
|
|
= 1.5999999999999999999999999999999999
|
|
fI[1] = #3fff9999 99999999 99999999 9999999a
|
|
= 1.6000000000000000000000000000000001
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.6
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfff9999 99999999 99999999 99999999
|
|
printf("%.35Lg") gives -1.5999999999999999999999999999999999
|
|
g_Qfmt(0) gives 37 bytes: "-1.5999999999999999999999999999999999"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfff9999 99999999 99999999 9999999a
|
|
= -1.6000000000000000000000000000000001
|
|
fI[1] = #bfff9999 99999999 99999999 99999999
|
|
= -1.5999999999999999999999999999999999
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.7
|
|
|
|
strtoQ consumes 3 bytes and returns 33
|
|
with bits = #3fffb333 33333333 33333333 33333334
|
|
printf("%.35Lg") gives 1.7000000000000000000000000000000002
|
|
g_Qfmt(0) gives 36 bytes: "1.7000000000000000000000000000000002"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fffb333 33333333 33333333 33333333
|
|
= 1.7
|
|
fI[1] = #3fffb333 33333333 33333333 33333334
|
|
= 1.7000000000000000000000000000000002
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.7
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfffb333 33333333 33333333 33333333
|
|
printf("%.35Lg") gives -1.7
|
|
g_Qfmt(0) gives 4 bytes: "-1.7"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfffb333 33333333 33333333 33333334
|
|
= -1.7000000000000000000000000000000002
|
|
fI[1] = #bfffb333 33333333 33333333 33333333
|
|
= -1.7
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.8
|
|
|
|
strtoQ consumes 3 bytes and returns 33
|
|
with bits = #3fffcccc cccccccc cccccccc cccccccd
|
|
printf("%.35Lg") gives 1.8
|
|
g_Qfmt(0) gives 3 bytes: "1.8"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fffcccc cccccccc cccccccc cccccccc
|
|
= 1.7999999999999999999999999999999998
|
|
fI[1] = #3fffcccc cccccccc cccccccc cccccccd
|
|
= 1.8
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.8
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfffcccc cccccccc cccccccc cccccccc
|
|
printf("%.35Lg") gives -1.7999999999999999999999999999999998
|
|
g_Qfmt(0) gives 37 bytes: "-1.7999999999999999999999999999999998"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfffcccc cccccccc cccccccc cccccccd
|
|
= -1.8
|
|
fI[1] = #bfffcccc cccccccc cccccccc cccccccc
|
|
= -1.7999999999999999999999999999999998
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.9
|
|
|
|
strtoQ consumes 3 bytes and returns 33
|
|
with bits = #3fffe666 66666666 66666666 66666667
|
|
printf("%.35Lg") gives 1.9000000000000000000000000000000001
|
|
g_Qfmt(0) gives 36 bytes: "1.9000000000000000000000000000000001"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fffe666 66666666 66666666 66666666
|
|
= 1.8999999999999999999999999999999999
|
|
fI[1] = #3fffe666 66666666 66666666 66666667
|
|
= 1.9000000000000000000000000000000001
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.9
|
|
|
|
strtoQ consumes 4 bytes and returns 25
|
|
with bits = #bfffe666 66666666 66666666 66666666
|
|
printf("%.35Lg") gives -1.8999999999999999999999999999999999
|
|
g_Qfmt(0) gives 4 bytes: "-1.9"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfffe666 66666666 66666666 66666667
|
|
= -1.9000000000000000000000000000000001
|
|
fI[1] = #bfffe666 66666666 66666666 66666666
|
|
= -1.8999999999999999999999999999999999
|
|
fI[1] == strtod
|
|
|
|
Rounding mode for strtor... changed from 2 (toward +Infinity) to 3 (toward -Infinity)
|
|
|
|
Input: 1.1
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fff1999 99999999 99999999 99999999
|
|
printf("%.35Lg") gives 1.0999999999999999999999999999999999
|
|
g_Qfmt(0) gives 36 bytes: "1.0999999999999999999999999999999999"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fff1999 99999999 99999999 99999999
|
|
= 1.0999999999999999999999999999999999
|
|
fI[1] = #3fff1999 99999999 99999999 9999999a
|
|
= 1.1000000000000000000000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.1
|
|
|
|
strtoQ consumes 4 bytes and returns 41
|
|
with bits = #bfff1999 99999999 99999999 9999999a
|
|
printf("%.35Lg") gives -1.1000000000000000000000000000000001
|
|
g_Qfmt(0) gives 4 bytes: "-1.1"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfff1999 99999999 99999999 9999999a
|
|
= -1.1000000000000000000000000000000001
|
|
fI[1] = #bfff1999 99999999 99999999 99999999
|
|
= -1.0999999999999999999999999999999999
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.2
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fff3333 33333333 33333333 33333333
|
|
printf("%.35Lg") gives 1.2
|
|
g_Qfmt(0) gives 3 bytes: "1.2"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fff3333 33333333 33333333 33333333
|
|
= 1.2
|
|
fI[1] = #3fff3333 33333333 33333333 33333334
|
|
= 1.2000000000000000000000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.2
|
|
|
|
strtoQ consumes 4 bytes and returns 41
|
|
with bits = #bfff3333 33333333 33333333 33333334
|
|
printf("%.35Lg") gives -1.2000000000000000000000000000000002
|
|
g_Qfmt(0) gives 37 bytes: "-1.2000000000000000000000000000000002"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfff3333 33333333 33333333 33333334
|
|
= -1.2000000000000000000000000000000002
|
|
fI[1] = #bfff3333 33333333 33333333 33333333
|
|
= -1.2
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.3
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fff4ccc cccccccc cccccccc cccccccc
|
|
printf("%.35Lg") gives 1.2999999999999999999999999999999998
|
|
g_Qfmt(0) gives 36 bytes: "1.2999999999999999999999999999999998"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fff4ccc cccccccc cccccccc cccccccc
|
|
= 1.2999999999999999999999999999999998
|
|
fI[1] = #3fff4ccc cccccccc cccccccc cccccccd
|
|
= 1.3
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.3
|
|
|
|
strtoQ consumes 4 bytes and returns 41
|
|
with bits = #bfff4ccc cccccccc cccccccc cccccccd
|
|
printf("%.35Lg") gives -1.3
|
|
g_Qfmt(0) gives 4 bytes: "-1.3"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfff4ccc cccccccc cccccccc cccccccd
|
|
= -1.3
|
|
fI[1] = #bfff4ccc cccccccc cccccccc cccccccc
|
|
= -1.2999999999999999999999999999999998
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.4
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fff6666 66666666 66666666 66666666
|
|
printf("%.35Lg") gives 1.3999999999999999999999999999999999
|
|
g_Qfmt(0) gives 3 bytes: "1.4"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fff6666 66666666 66666666 66666666
|
|
= 1.3999999999999999999999999999999999
|
|
fI[1] = #3fff6666 66666666 66666666 66666667
|
|
= 1.4000000000000000000000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.4
|
|
|
|
strtoQ consumes 4 bytes and returns 41
|
|
with bits = #bfff6666 66666666 66666666 66666667
|
|
printf("%.35Lg") gives -1.4000000000000000000000000000000001
|
|
g_Qfmt(0) gives 37 bytes: "-1.4000000000000000000000000000000001"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfff6666 66666666 66666666 66666667
|
|
= -1.4000000000000000000000000000000001
|
|
fI[1] = #bfff6666 66666666 66666666 66666666
|
|
= -1.3999999999999999999999999999999999
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.5
|
|
|
|
strtoQ consumes 3 bytes and returns 1
|
|
with bits = #3fff8000 0 0 0
|
|
printf("%.35Lg") gives 1.5
|
|
g_Qfmt(0) gives 3 bytes: "1.5"
|
|
|
|
strtoIQ returns 1, consuming 3 bytes.
|
|
fI[0] == fI[1] = #3fff8000 0 0 0
|
|
= 1.5
|
|
|
|
|
|
Input: -1.5
|
|
|
|
strtoQ consumes 4 bytes and returns 9
|
|
with bits = #bfff8000 0 0 0
|
|
printf("%.35Lg") gives -1.5
|
|
g_Qfmt(0) gives 4 bytes: "-1.5"
|
|
|
|
strtoIQ returns 9, consuming 4 bytes.
|
|
fI[0] == fI[1] = #bfff8000 0 0 0
|
|
= -1.5
|
|
|
|
|
|
Input: 1.6
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fff9999 99999999 99999999 99999999
|
|
printf("%.35Lg") gives 1.5999999999999999999999999999999999
|
|
g_Qfmt(0) gives 36 bytes: "1.5999999999999999999999999999999999"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fff9999 99999999 99999999 99999999
|
|
= 1.5999999999999999999999999999999999
|
|
fI[1] = #3fff9999 99999999 99999999 9999999a
|
|
= 1.6000000000000000000000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.6
|
|
|
|
strtoQ consumes 4 bytes and returns 41
|
|
with bits = #bfff9999 99999999 99999999 9999999a
|
|
printf("%.35Lg") gives -1.6000000000000000000000000000000001
|
|
g_Qfmt(0) gives 4 bytes: "-1.6"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfff9999 99999999 99999999 9999999a
|
|
= -1.6000000000000000000000000000000001
|
|
fI[1] = #bfff9999 99999999 99999999 99999999
|
|
= -1.5999999999999999999999999999999999
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.7
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fffb333 33333333 33333333 33333333
|
|
printf("%.35Lg") gives 1.7
|
|
g_Qfmt(0) gives 3 bytes: "1.7"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fffb333 33333333 33333333 33333333
|
|
= 1.7
|
|
fI[1] = #3fffb333 33333333 33333333 33333334
|
|
= 1.7000000000000000000000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.7
|
|
|
|
strtoQ consumes 4 bytes and returns 41
|
|
with bits = #bfffb333 33333333 33333333 33333334
|
|
printf("%.35Lg") gives -1.7000000000000000000000000000000002
|
|
g_Qfmt(0) gives 37 bytes: "-1.7000000000000000000000000000000002"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfffb333 33333333 33333333 33333334
|
|
= -1.7000000000000000000000000000000002
|
|
fI[1] = #bfffb333 33333333 33333333 33333333
|
|
= -1.7
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.8
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fffcccc cccccccc cccccccc cccccccc
|
|
printf("%.35Lg") gives 1.7999999999999999999999999999999998
|
|
g_Qfmt(0) gives 36 bytes: "1.7999999999999999999999999999999998"
|
|
|
|
strtoIQ returns 33, consuming 3 bytes.
|
|
fI[0] = #3fffcccc cccccccc cccccccc cccccccc
|
|
= 1.7999999999999999999999999999999998
|
|
fI[1] = #3fffcccc cccccccc cccccccc cccccccd
|
|
= 1.8
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.8
|
|
|
|
strtoQ consumes 4 bytes and returns 41
|
|
with bits = #bfffcccc cccccccc cccccccc cccccccd
|
|
printf("%.35Lg") gives -1.8
|
|
g_Qfmt(0) gives 4 bytes: "-1.8"
|
|
|
|
strtoIQ returns 41, consuming 4 bytes.
|
|
fI[0] = #bfffcccc cccccccc cccccccc cccccccd
|
|
= -1.8
|
|
fI[1] = #bfffcccc cccccccc cccccccc cccccccc
|
|
= -1.7999999999999999999999999999999998
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.9
|
|
|
|
strtoQ consumes 3 bytes and returns 17
|
|
with bits = #3fffe666 66666666 66666666 66666666
|
|
printf("%.35Lg") gives 1.8999999999999999999999999999999999
|
|
g_Qfmt(0) gives 3 bytes: "1.9"
|
|
|
|
strtoIQ returns 17, consuming 3 bytes.
|
|
fI[0] = #3fffe666 66666666 66666666 66666666
|
|
= 1.8999999999999999999999999999999999
|
|
fI[1] = #3fffe666 66666666 66666666 66666667
|
|
= 1.9000000000000000000000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.9
|
|
|
|
strtoQ consumes 4 bytes and returns 41
|
|
with bits = #bfffe666 66666666 66666666 66666667
|
|
printf("%.35Lg") gives -1.9000000000000000000000000000000001
|
|
g_Qfmt(0) gives 37 bytes: "-1.9000000000000000000000000000000001"
|
|
|
|
strtoIQ returns 25, consuming 4 bytes.
|
|
fI[0] = #bfffe666 66666666 66666666 66666667
|
|
= -1.9000000000000000000000000000000001
|
|
fI[1] = #bfffe666 66666666 66666666 66666666
|
|
= -1.8999999999999999999999999999999999
|
|
fI[0] == strtod
|
|
|