mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-27 03:11:52 +01:00
cc36ccd13b
strings and floating point.
377 lines
10 KiB
Plaintext
377 lines
10 KiB
Plaintext
|
|
Input: 1.23
|
|
strtopdd consumes 4 bytes and returns 17
|
|
dd[0] = 1.23 = #3ff3ae14 7ae147ae
|
|
dd[1] = 1.7763568394002496e-17 = #3c747ae1 47ae1478
|
|
g_ddfmt(0) gives 4 bytes: "1.23"
|
|
|
|
strtoIdd returns 17, consuming 4 bytes.
|
|
ddI[0] = #3ff3ae14 7ae147ae + 3c747ae1 47ae1478
|
|
= 1.23 + 1.7763568394002496e-17
|
|
ddI[1] = #3ff3ae14 7ae147ae + 3c747ae1 47ae1480
|
|
= 1.23 + 1.776356839400252e-17
|
|
ddI[0] == strtod
|
|
|
|
|
|
Input: 1.23e+20
|
|
strtopdd consumes 8 bytes and returns 1
|
|
dd[0] = 1.23e+20 = #441aabdf 2145b430
|
|
dd[1] = 0 = #0 0
|
|
g_ddfmt(0) gives 8 bytes: "1.23e+20"
|
|
|
|
strtoIdd returns 1, consuming 8 bytes.
|
|
ddI[0] == ddI[1] == strtopdd
|
|
|
|
|
|
Input: 1.23e-20
|
|
strtopdd consumes 8 bytes and returns 33
|
|
dd[0] = 1.2299999999999999e-20 = #3bcd0ae4 cf767530
|
|
dd[1] = 9.304023318521521e-37 = #3873c997 955b2691
|
|
g_ddfmt(0) gives 8 bytes: "1.23e-20"
|
|
|
|
strtoIdd returns 33, consuming 8 bytes.
|
|
ddI[0] = #3bcd0ae4 cf767530 + 3873c997 955b2690
|
|
= 1.2299999999999999e-20 + 9.3040233185215194e-37
|
|
ddI[1] = #3bcd0ae4 cf767530 + 3873c997 955b2691
|
|
= 1.2299999999999999e-20 + 9.3040233185215211e-37
|
|
ddI[1] == strtod
|
|
|
|
|
|
Input: 1.23456789
|
|
strtopdd consumes 10 bytes and returns 17
|
|
dd[0] = 1.23456789 = #3ff3c0ca 4283de1b
|
|
dd[1] = 1.0990618193318369e-16 = #3c9fada5 144c1252
|
|
g_ddfmt(0) gives 10 bytes: "1.23456789"
|
|
|
|
strtoIdd returns 17, consuming 10 bytes.
|
|
ddI[0] = #3ff3c0ca 4283de1b + 3c9fada5 144c1252
|
|
= 1.2345678899999999 + 1.0990618193318369e-16
|
|
ddI[1] = #3ff3c0ca 4283de1b + 3c9fada5 144c1254
|
|
= 1.2345678899999999 + 1.0990618193318371e-16
|
|
ddI[0] == strtod
|
|
|
|
|
|
Input: 1.23456589e+20
|
|
strtopdd consumes 14 bytes and returns 1
|
|
dd[0] = 1.23456589e+20 = #441ac537 a660b997
|
|
dd[1] = 4096 = #40b00000 0
|
|
g_ddfmt(0) gives 14 bytes: "1.23456589e+20"
|
|
|
|
strtoIdd returns 1, consuming 14 bytes.
|
|
ddI[0] == ddI[1] == strtopdd
|
|
|
|
|
|
Input: 1.23e+30
|
|
strtopdd consumes 8 bytes and returns 1
|
|
dd[0] = 1.23e+30 = #462f0cb0 4e8fb790
|
|
dd[1] = 40281156091904 = #42c25158 0
|
|
g_ddfmt(0) gives 8 bytes: "1.23e+30"
|
|
|
|
strtoIdd returns 1, consuming 8 bytes.
|
|
ddI[0] == ddI[1] == strtopdd
|
|
|
|
|
|
Input: 1.23e-30
|
|
strtopdd consumes 8 bytes and returns 17
|
|
dd[0] = 1.2299999999999999e-30 = #39b8f286 6f5010aa
|
|
dd[1] = 1.076909723013918e-46 = #3663ac7f 3dafd174
|
|
g_ddfmt(0) gives 8 bytes: "1.23e-30"
|
|
|
|
strtoIdd returns 17, consuming 8 bytes.
|
|
ddI[0] = #39b8f286 6f5010aa + 3663ac7f 3dafd174
|
|
= 1.2299999999999999e-30 + 1.076909723013918e-46
|
|
ddI[1] = #39b8f286 6f5010aa + 3663ac7f 3dafd175
|
|
= 1.2299999999999999e-30 + 1.0769097230139181e-46
|
|
ddI[0] == strtod
|
|
|
|
|
|
Input: 1.23456789e-20
|
|
strtopdd consumes 14 bytes and returns 17
|
|
dd[0] = 1.23456789e-20 = #3bcd2681 471e7ada
|
|
dd[1] = 6.247111971663133e-37 = #386a9280 a761b07e
|
|
g_ddfmt(0) gives 14 bytes: "1.23456789e-20"
|
|
|
|
strtoIdd returns 17, consuming 14 bytes.
|
|
ddI[0] = #3bcd2681 471e7ada + 386a9280 a761b07e
|
|
= 1.2345678899999999e-20 + 6.2471119716631328e-37
|
|
ddI[1] = #3bcd2681 471e7ada + 386a9280 a761b080
|
|
= 1.2345678899999999e-20 + 6.2471119716631345e-37
|
|
ddI[0] == strtod
|
|
|
|
|
|
Input: 1.23456789e-30
|
|
strtopdd consumes 14 bytes and returns 33
|
|
dd[0] = 1.23456789e-30 = #39b90a3e 33bbd995
|
|
dd[1] = 2.1567930523648577e-47 = #363f8585 55a6b1a0
|
|
g_ddfmt(0) gives 14 bytes: "1.23456789e-30"
|
|
|
|
strtoIdd returns 33, consuming 14 bytes.
|
|
ddI[0] = #39b90a3e 33bbd995 + 363f8585 55a6b198
|
|
= 1.23456789e-30 + 2.1567930523648558e-47
|
|
ddI[1] = #39b90a3e 33bbd995 + 363f8585 55a6b1a0
|
|
= 1.23456789e-30 + 2.1567930523648577e-47
|
|
ddI[1] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789
|
|
strtopdd consumes 20 bytes and returns 33
|
|
dd[0] = 1.2345678901234567 = #3ff3c0ca 428c59fb
|
|
dd[1] = 9.856786452588859e-17 = #3c9c6906 51a3745e
|
|
g_ddfmt(0) gives 20 bytes: "1.234567890123456789"
|
|
|
|
strtoIdd returns 33, consuming 20 bytes.
|
|
ddI[0] = #3ff3c0ca 428c59fb + 3c9c6906 51a3745c
|
|
= 1.2345678901234567 + 9.8567864525888563e-17
|
|
ddI[1] = #3ff3c0ca 428c59fb + 3c9c6906 51a3745e
|
|
= 1.2345678901234567 + 9.8567864525888588e-17
|
|
ddI[1] == strtod
|
|
|
|
|
|
Input: 1.23456789012345678901234567890123456789
|
|
strtopdd consumes 40 bytes and returns 33
|
|
dd[0] = 1.2345678901234567 = #3ff3c0ca 428c59fb
|
|
dd[1] = 9.858021020478982e-17 = #3c9c69ef 85adadb6
|
|
g_ddfmt(0) gives 34 bytes: "1.23456789012345678901234567890124"
|
|
|
|
strtoIdd returns 33, consuming 40 bytes.
|
|
ddI[0] = #3ff3c0ca 428c59fb + 3c9c69ef 85adadb4
|
|
= 1.2345678901234567 + 9.8580210204789798e-17
|
|
ddI[1] = #3ff3c0ca 428c59fb + 3c9c69ef 85adadb6
|
|
= 1.2345678901234567 + 9.8580210204789823e-17
|
|
ddI[1] == strtod
|
|
|
|
|
|
Input: 1.23e306
|
|
strtopdd consumes 8 bytes and returns 33
|
|
dd[0] = 1.2299999999999999e+306 = #7f7c0676 cd1c61f4
|
|
dd[1] = 1.3319001448659015e+290 = #7c2b558b e3d3f477
|
|
g_ddfmt(0) gives 9 bytes: "1.23e+306"
|
|
|
|
strtoIdd returns 33, consuming 8 bytes.
|
|
ddI[0] = #7f7c0676 cd1c61f4 + 7c2b558b e3d3f476
|
|
= 1.2299999999999999e+306 + 1.3319001448659013e+290
|
|
ddI[1] = #7f7c0676 cd1c61f4 + 7c2b558b e3d3f477
|
|
= 1.2299999999999999e+306 + 1.3319001448659015e+290
|
|
ddI[1] == strtod
|
|
|
|
|
|
Input: 1.23e-306
|
|
strtopdd consumes 9 bytes and returns 80
|
|
dd[0] = 0 = #0 0
|
|
dd[1] = 0 = #0 0
|
|
g_ddfmt(0) gives 1 bytes: "0"
|
|
|
|
strtoIdd returns 80, consuming 9 bytes.
|
|
ddI[0] = #0 0 + 0 0
|
|
= 0 + 0
|
|
ddI[1] = #6a00000 0 + 0 0
|
|
= 9.0259718793241479e-277 + 0
|
|
ddI[0] == strtod
|
|
|
|
|
|
Input: 1.23e-320
|
|
strtopdd consumes 9 bytes and returns 80
|
|
dd[0] = 0 = #0 0
|
|
dd[1] = 0 = #0 0
|
|
g_ddfmt(0) gives 1 bytes: "0"
|
|
|
|
strtoIdd returns 80, consuming 9 bytes.
|
|
ddI[0] = #0 0 + 0 0
|
|
= 0 + 0
|
|
ddI[1] = #6a00000 0 + 0 0
|
|
= 9.0259718793241479e-277 + 0
|
|
ddI[0] == strtod
|
|
|
|
|
|
Input: 1.23e-20
|
|
strtopdd consumes 8 bytes and returns 33
|
|
dd[0] = 1.2299999999999999e-20 = #3bcd0ae4 cf767530
|
|
dd[1] = 9.304023318521521e-37 = #3873c997 955b2691
|
|
g_ddfmt(0) gives 8 bytes: "1.23e-20"
|
|
|
|
strtoIdd returns 33, consuming 8 bytes.
|
|
ddI[0] = #3bcd0ae4 cf767530 + 3873c997 955b2690
|
|
= 1.2299999999999999e-20 + 9.3040233185215194e-37
|
|
ddI[1] = #3bcd0ae4 cf767530 + 3873c997 955b2691
|
|
= 1.2299999999999999e-20 + 9.3040233185215211e-37
|
|
ddI[1] == strtod
|
|
|
|
|
|
Input: 1.23456789e307
|
|
strtopdd consumes 14 bytes and returns 33
|
|
dd[0] = 1.2345678899999998e+307 = #7fb194b1 4bdaecdb
|
|
dd[1] = 2.0137933598720243e+291 = #7c69d48d 192048ca
|
|
g_ddfmt(0) gives 15 bytes: "1.23456789e+307"
|
|
|
|
strtoIdd returns 33, consuming 14 bytes.
|
|
ddI[0] = #7fb194b1 4bdaecdb + 7c69d48d 192048c9
|
|
= 1.2345678899999998e+307 + 2.013793359872024e+291
|
|
ddI[1] = #7fb194b1 4bdaecdb + 7c69d48d 192048ca
|
|
= 1.2345678899999998e+307 + 2.0137933598720243e+291
|
|
ddI[1] == strtod
|
|
|
|
|
|
Input: 1.23456589e-307
|
|
strtopdd consumes 15 bytes and returns 80
|
|
dd[0] = 0 = #0 0
|
|
dd[1] = 0 = #0 0
|
|
g_ddfmt(0) gives 1 bytes: "0"
|
|
|
|
strtoIdd returns 80, consuming 15 bytes.
|
|
ddI[0] = #0 0 + 0 0
|
|
= 0 + 0
|
|
ddI[1] = #6a00000 0 + 0 0
|
|
= 9.0259718793241479e-277 + 0
|
|
ddI[0] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789
|
|
strtopdd consumes 20 bytes and returns 33
|
|
dd[0] = 1.2345678901234567 = #3ff3c0ca 428c59fb
|
|
dd[1] = 9.856786452588859e-17 = #3c9c6906 51a3745e
|
|
g_ddfmt(0) gives 20 bytes: "1.234567890123456789"
|
|
|
|
strtoIdd returns 33, consuming 20 bytes.
|
|
ddI[0] = #3ff3c0ca 428c59fb + 3c9c6906 51a3745c
|
|
= 1.2345678901234567 + 9.8567864525888563e-17
|
|
ddI[1] = #3ff3c0ca 428c59fb + 3c9c6906 51a3745e
|
|
= 1.2345678901234567 + 9.8567864525888588e-17
|
|
ddI[1] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789e301
|
|
strtopdd consumes 24 bytes and returns 33
|
|
dd[0] = 1.2345678901234568e+301 = #7e726f51 75f56413
|
|
dd[1] = 1.3892003943918827e+283 = #7ab7ea80 76399100
|
|
g_ddfmt(0) gives 25 bytes: "1.234567890123456789e+301"
|
|
|
|
strtoIdd returns 33, consuming 24 bytes.
|
|
ddI[0] = #7e726f51 75f56413 + 7ab7ea80 76399080
|
|
= 1.2345678901234568e+301 + 1.3892003943918563e+283
|
|
ddI[1] = #7e726f51 75f56413 + 7ab7ea80 76399100
|
|
= 1.2345678901234568e+301 + 1.3892003943918827e+283
|
|
ddI[1] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789e-301
|
|
strtopdd consumes 25 bytes and returns 80
|
|
dd[0] = 0 = #0 0
|
|
dd[1] = 0 = #0 0
|
|
g_ddfmt(0) gives 1 bytes: "0"
|
|
|
|
strtoIdd returns 80, consuming 25 bytes.
|
|
ddI[0] = #0 0 + 0 0
|
|
= 0 + 0
|
|
ddI[1] = #6a00000 0 + 0 0
|
|
= 9.0259718793241479e-277 + 0
|
|
ddI[0] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789e-321
|
|
strtopdd consumes 25 bytes and returns 80
|
|
dd[0] = 0 = #0 0
|
|
dd[1] = 0 = #0 0
|
|
g_ddfmt(0) gives 1 bytes: "0"
|
|
|
|
strtoIdd returns 80, consuming 25 bytes.
|
|
ddI[0] = #0 0 + 0 0
|
|
= 0 + 0
|
|
ddI[1] = #6a00000 0 + 0 0
|
|
= 9.0259718793241479e-277 + 0
|
|
ddI[0] == strtod
|
|
|
|
|
|
Input: 1e23
|
|
strtopdd consumes 4 bytes and returns 1
|
|
dd[0] = 1e+23 = #44b52d02 c7e14af6
|
|
dd[1] = 8388608 = #41600000 0
|
|
g_ddfmt(0) gives 5 bytes: "1e+23"
|
|
|
|
strtoIdd returns 1, consuming 4 bytes.
|
|
ddI[0] == ddI[1] == strtopdd
|
|
|
|
|
|
Input: 1e310
|
|
strtopdd consumes 5 bytes and returns 163
|
|
dd[0] = Infinity = #7ff00000 0
|
|
dd[1] = Infinity = #7ff00000 0
|
|
g_ddfmt(0) gives 8 bytes: "Infinity"
|
|
|
|
strtoIdd returns 163, consuming 5 bytes.
|
|
ddI[0] = #7fefffff ffffffff + 7c9fffff ffffffff
|
|
= 1.7976931348623157e+308 + 1.9958403095347196e+292
|
|
ddI[1] = #7ff00000 0 + 7ff00000 0
|
|
= Infinity + Infinity
|
|
ddI[1] == strtod
|
|
|
|
|
|
Input: 9.0259718793241475e-277
|
|
strtopdd consumes 23 bytes and returns 80
|
|
dd[0] = 0 = #0 0
|
|
dd[1] = 0 = #0 0
|
|
g_ddfmt(0) gives 1 bytes: "0"
|
|
|
|
strtoIdd returns 80, consuming 23 bytes.
|
|
ddI[0] = #0 0 + 0 0
|
|
= 0 + 0
|
|
ddI[1] = #6a00000 0 + 0 0
|
|
= 9.0259718793241479e-277 + 0
|
|
ddI[0] == strtod
|
|
|
|
|
|
Input: 9.025971879324147880346310405869e-277
|
|
strtopdd consumes 37 bytes and returns 17
|
|
dd[0] = 9.025971879324148e-277 = #6a00000 0
|
|
dd[1] = 2.2250738585072014e-308 = #100000 0
|
|
g_ddfmt(0) gives 37 bytes: "9.025971879324147880346310405869e-277"
|
|
|
|
strtoIdd returns 17, consuming 37 bytes.
|
|
ddI[0] = #6a00000 0 + 100000 0
|
|
= 9.0259718793241479e-277 + 2.2250738585072014e-308
|
|
ddI[1] = #6a00000 0 + 200000 0
|
|
= 9.0259718793241479e-277 + 4.4501477170144028e-308
|
|
ddI[0] == strtod
|
|
|
|
|
|
Input: 9.025971879324147880346310405868e-277
|
|
strtopdd consumes 37 bytes and returns 80
|
|
dd[0] = 0 = #0 0
|
|
dd[1] = 0 = #0 0
|
|
g_ddfmt(0) gives 1 bytes: "0"
|
|
|
|
strtoIdd returns 80, consuming 37 bytes.
|
|
ddI[0] = #0 0 + 0 0
|
|
= 0 + 0
|
|
ddI[1] = #6a00000 0 + 0 0
|
|
= 9.0259718793241479e-277 + 0
|
|
ddI[0] == strtod
|
|
|
|
|
|
Input: 2.2250738585072014e-308
|
|
strtopdd consumes 23 bytes and returns 80
|
|
dd[0] = 0 = #0 0
|
|
dd[1] = 0 = #0 0
|
|
g_ddfmt(0) gives 1 bytes: "0"
|
|
|
|
strtoIdd returns 80, consuming 23 bytes.
|
|
ddI[0] = #0 0 + 0 0
|
|
= 0 + 0
|
|
ddI[1] = #6a00000 0 + 0 0
|
|
= 9.0259718793241479e-277 + 0
|
|
ddI[0] == strtod
|
|
|
|
|
|
Input: 2.2250738585072013e-308
|
|
strtopdd consumes 23 bytes and returns 80
|
|
dd[0] = 0 = #0 0
|
|
dd[1] = 0 = #0 0
|
|
g_ddfmt(0) gives 1 bytes: "0"
|
|
|
|
strtoIdd returns 80, consuming 23 bytes.
|
|
ddI[0] = #0 0 + 0 0
|
|
= 0 + 0
|
|
ddI[1] = #6a00000 0 + 0 0
|
|
= 9.0259718793241479e-277 + 0
|
|
ddI[0] == strtod
|
|
|