Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Example #1: 3.141592653589793
- Stored in memory as 0100000000001001001000011111101101010100010001000010110100011000
- sign bit: 0
- exponent bits: 10000000000
- mantissa bits: 1001001000011111101101010100010001000010110100011000
- mantissa with implied `1` bit: 11001001000011111101101010100010001000010110100011000
- raw exponent: 1024
- actual exponent (subtracting 1023 from raw): 1
- mantissa with implied bit: 7074237752028440
- final value formula: sign * (mantissa / b^(p-1)) * b^exponent
- b (aka base) = 2
- p (aka precision) = 53
- final value = 1 * (7074237752028440 / 2^52) * 2^1
- final value = 1 * (7074237752028440 / 4503599627370496) * 2
- final value = 884279719003555/281474976710656
- final value = 3.141592653589793115997963468544185161590576171875
- final value ~= 3.141592653589793
- Example #2: 1.0
- Stored in memory as 0011111111110000000000000000000000000000000000000000000000000000
- sign bit: 0
- exponent bits: 01111111111
- mantissa bits: 0000000000000000000000000000000000000000000000000000
- mantissa with implied `1` bit: 10000000000000000000000000000000000000000000000000000
- raw exponent: 1023
- actual exponent (subtracting 1023 from raw): 0
- mantissa with implied bit: 4503599627370496
- final value formula: sign * (mantissa / b^(p-1)) * b^exponent
- b (aka base) = 2
- p (aka precision) = 53
- final value = 1 * (4503599627370496 / 2^52) * 2^0
- final value = 1 * (4503599627370496 / 4503599627370496) * 1
- final value = 1
- final value ~= 1.0
- Example #3: 0.25
- Stored in memory as 0011111111010000000000000000000000000000000000000000000000000000
- sign bit: 0
- exponent bits: 01111111101
- mantissa bits: 0000000000000000000000000000000000000000000000000000
- mantissa with implied `1` bit: 10000000000000000000000000000000000000000000000000000
- raw exponent: 1021
- actual exponent (subtracting 1023 from raw): -2
- mantissa with implied bit: 4503599627370496
- final value formula: sign * (mantissa / b^(p-1)) * b^exponent
- b (aka base) = 2
- p (aka precision) = 53
- final value = 1 * (4503599627370496 / 2^52) * 2^-2
- final value = 1 * (4503599627370496 / 4503599627370496) * 1/4
- final value = 1/4
- final value = 0.25
- Example #4: 123.456
- Stored in memory as 0100000001011110110111010010111100011010100111111011111001110111
- sign bit: 0
- exponent bits: 10000000101
- mantissa bits: 1110110111010010111100011010100111111011111001110111
- mantissa with implied `1` bit: 11110110111010010111100011010100111111011111001110111
- raw exponent: 1029
- actual exponent (subtracting 1023 from raw): 6
- mantissa with implied bit: 8687443681197687
- final value formula: sign * (mantissa / b^(p-1)) * b^exponent
- b (aka base) = 2
- p (aka precision) = 53
- final value = 1 * (8687443681197687 / 2^52) * 2^6
- final value = 1 * (8687443681197687 / 4503599627370496) * 64
- final value = 8687443681197687/70368744177664
- final value = 123.4560000000000030695446184836328029632568359375
- final value ~= 123.456
- Example #5: -777.0
- Stored in memory as 1100000010001000010010000000000000000000000000000000000000000000
- sign bit: 1
- exponent bits: 10000001000
- mantissa bits: 1000010010000000000000000000000000000000000000000000
- mantissa with implied `1` bit: 11000010010000000000000000000000000000000000000000000
- raw exponent: 1032
- actual exponent (subtracting 1023 from raw): 9
- mantissa with implied bit: 6834564278255616
- final value formula: sign * (mantissa / b^(p-1)) * b^exponent
- b (aka base) = 2
- p (aka precision) = 53
- final value = -1 * (6834564278255616 / 2^52) * 2^9
- final value = -1 * (6834564278255616 / 4503599627370496) * 512
- final value = -777
- final value ~= -777.0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement