mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
Fixed-point values can use all 32-Q magnitude bits (#1085)
This commit is contained in:
@@ -1179,7 +1179,7 @@ static uint32_t readFractionalPart(uint32_t integer)
|
|||||||
precision = fixPrecision;
|
precision = fixPrecision;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (integer >= ((uint64_t)1 << precision))
|
if (integer >= ((uint64_t)1 << (32 - precision)))
|
||||||
warning(WARNING_LARGE_CONSTANT, "Magnitude of fixed-point constant is too large\n");
|
warning(WARNING_LARGE_CONSTANT, "Magnitude of fixed-point constant is too large\n");
|
||||||
|
|
||||||
// Cast to unsigned avoids undefined overflow behavior
|
// Cast to unsigned avoids undefined overflow behavior
|
||||||
|
|||||||
@@ -1,13 +1,19 @@
|
|||||||
OPT Q.4
|
for precision, 1, 32
|
||||||
println 1.0
|
opt Q{d:precision}
|
||||||
println -1.0
|
def magnitude = 32 - precision
|
||||||
println 0.0625
|
|
||||||
println -0.0625
|
def maxInt = 1 << magnitude - 1
|
||||||
println 7.25
|
redef defMaxValue equs "def maxValue = {d:maxInt}.0"
|
||||||
println -7.25
|
{defMaxValue}
|
||||||
println 12.25
|
println "Q.{2d:precision}: max ok = 1 << {2d:magnitude} - 1 = {11d:maxInt}.0 = {#09x:maxValue}"
|
||||||
println -12.25
|
|
||||||
println 15.9375
|
def minBadInt = maxInt + 1
|
||||||
println -15.9375
|
redef defMinBadValue equs "def minBadValue = {d:minBadInt}.0"
|
||||||
println 20.0
|
{defMinBadValue}
|
||||||
println -20.0
|
println "Q.{2d:precision}: min bad = 1 << {2d:magnitude} = {11d:minBadInt}.0 = {#09x:minBadValue}"
|
||||||
|
|
||||||
|
def worseInt = minBadInt + 42
|
||||||
|
redef defWorseValue equs "def worseValue = {d:worseInt}.0"
|
||||||
|
{defWorseValue}
|
||||||
|
println "Q.{2d:precision}: worse = 1 << {2d:magnitude} + 42 = {11d:worseInt}.0 = {#09x:worseValue}"
|
||||||
|
endr
|
||||||
|
|||||||
@@ -1,4 +1,183 @@
|
|||||||
warning: fixed-point-magnitude.asm(12): [-Wlarge-constant]
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~1(12): [-Wlarge-constant]
|
||||||
Magnitude of fixed-point constant is too large
|
Magnitude of fixed-point constant is too large
|
||||||
warning: fixed-point-magnitude.asm(13): [-Wlarge-constant]
|
while expanding symbol "def minBadValue = -2147483648.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~2(12): [-Wlarge-constant]
|
||||||
Magnitude of fixed-point constant is too large
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 1073741824.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~2(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 1073741866.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~3(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 536870912.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~3(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 536870954.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~4(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 268435456.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~4(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 268435498.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~5(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 134217728.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~5(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 134217770.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~6(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 67108864.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~6(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 67108906.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~7(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 33554432.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~7(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 33554474.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~8(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 16777216.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~8(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 16777258.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~9(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 8388608.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~9(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 8388650.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~10(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 4194304.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~10(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 4194346.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~11(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 2097152.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~11(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 2097194.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~12(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 1048576.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~12(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 1048618.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~13(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 524288.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~13(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 524330.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~14(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 262144.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~14(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 262186.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~15(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 131072.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~15(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 131114.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~16(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 65536.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~16(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 65578.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~17(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 32768.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~17(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 32810.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~18(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 16384.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~18(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 16426.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~19(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 8192.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~19(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 8234.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~20(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 4096.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~20(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 4138.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~21(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 2048.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~21(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 2090.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~22(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 1024.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~22(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 1066.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~23(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 512.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~23(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 554.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~24(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 256.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~24(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 298.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~25(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 128.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~25(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 170.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~26(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 64.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~26(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 106.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~27(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 32.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~27(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 74.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~28(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 16.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~28(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 58.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~29(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 8.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~29(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 50.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~30(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 4.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~30(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 46.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~31(12): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def minBadValue = 2.0"
|
||||||
|
warning: fixed-point-magnitude.asm(1) -> fixed-point-magnitude.asm::REPT~31(17): [-Wlarge-constant]
|
||||||
|
Magnitude of fixed-point constant is too large
|
||||||
|
while expanding symbol "def worseValue = 44.0"
|
||||||
|
|||||||
@@ -1,12 +1,93 @@
|
|||||||
$10
|
Q. 1: max ok = 1 << 31 - 1 = 2147483647.0 = $fffffffe
|
||||||
$FFFFFFF0
|
Q. 1: min bad = 1 << 31 = -2147483648.0 = $00000000
|
||||||
$1
|
Q. 1: worse = 1 << 31 + 42 = -2147483606.0 = $00000054
|
||||||
$FFFFFFFF
|
Q. 2: max ok = 1 << 30 - 1 = 1073741823.0 = $fffffffc
|
||||||
$74
|
Q. 2: min bad = 1 << 30 = 1073741824.0 = $00000000
|
||||||
$FFFFFF8C
|
Q. 2: worse = 1 << 30 + 42 = 1073741866.0 = $000000a8
|
||||||
$C4
|
Q. 3: max ok = 1 << 29 - 1 = 536870911.0 = $fffffff8
|
||||||
$FFFFFF3C
|
Q. 3: min bad = 1 << 29 = 536870912.0 = $00000000
|
||||||
$FF
|
Q. 3: worse = 1 << 29 + 42 = 536870954.0 = $00000150
|
||||||
$FFFFFF01
|
Q. 4: max ok = 1 << 28 - 1 = 268435455.0 = $fffffff0
|
||||||
$140
|
Q. 4: min bad = 1 << 28 = 268435456.0 = $00000000
|
||||||
$FFFFFEC0
|
Q. 4: worse = 1 << 28 + 42 = 268435498.0 = $000002a0
|
||||||
|
Q. 5: max ok = 1 << 27 - 1 = 134217727.0 = $ffffffe0
|
||||||
|
Q. 5: min bad = 1 << 27 = 134217728.0 = $00000000
|
||||||
|
Q. 5: worse = 1 << 27 + 42 = 134217770.0 = $00000540
|
||||||
|
Q. 6: max ok = 1 << 26 - 1 = 67108863.0 = $ffffffc0
|
||||||
|
Q. 6: min bad = 1 << 26 = 67108864.0 = $00000000
|
||||||
|
Q. 6: worse = 1 << 26 + 42 = 67108906.0 = $00000a80
|
||||||
|
Q. 7: max ok = 1 << 25 - 1 = 33554431.0 = $ffffff80
|
||||||
|
Q. 7: min bad = 1 << 25 = 33554432.0 = $00000000
|
||||||
|
Q. 7: worse = 1 << 25 + 42 = 33554474.0 = $00001500
|
||||||
|
Q. 8: max ok = 1 << 24 - 1 = 16777215.0 = $ffffff00
|
||||||
|
Q. 8: min bad = 1 << 24 = 16777216.0 = $00000000
|
||||||
|
Q. 8: worse = 1 << 24 + 42 = 16777258.0 = $00002a00
|
||||||
|
Q. 9: max ok = 1 << 23 - 1 = 8388607.0 = $fffffe00
|
||||||
|
Q. 9: min bad = 1 << 23 = 8388608.0 = $00000000
|
||||||
|
Q. 9: worse = 1 << 23 + 42 = 8388650.0 = $00005400
|
||||||
|
Q.10: max ok = 1 << 22 - 1 = 4194303.0 = $fffffc00
|
||||||
|
Q.10: min bad = 1 << 22 = 4194304.0 = $00000000
|
||||||
|
Q.10: worse = 1 << 22 + 42 = 4194346.0 = $0000a800
|
||||||
|
Q.11: max ok = 1 << 21 - 1 = 2097151.0 = $fffff800
|
||||||
|
Q.11: min bad = 1 << 21 = 2097152.0 = $00000000
|
||||||
|
Q.11: worse = 1 << 21 + 42 = 2097194.0 = $00015000
|
||||||
|
Q.12: max ok = 1 << 20 - 1 = 1048575.0 = $fffff000
|
||||||
|
Q.12: min bad = 1 << 20 = 1048576.0 = $00000000
|
||||||
|
Q.12: worse = 1 << 20 + 42 = 1048618.0 = $0002a000
|
||||||
|
Q.13: max ok = 1 << 19 - 1 = 524287.0 = $ffffe000
|
||||||
|
Q.13: min bad = 1 << 19 = 524288.0 = $00000000
|
||||||
|
Q.13: worse = 1 << 19 + 42 = 524330.0 = $00054000
|
||||||
|
Q.14: max ok = 1 << 18 - 1 = 262143.0 = $ffffc000
|
||||||
|
Q.14: min bad = 1 << 18 = 262144.0 = $00000000
|
||||||
|
Q.14: worse = 1 << 18 + 42 = 262186.0 = $000a8000
|
||||||
|
Q.15: max ok = 1 << 17 - 1 = 131071.0 = $ffff8000
|
||||||
|
Q.15: min bad = 1 << 17 = 131072.0 = $00000000
|
||||||
|
Q.15: worse = 1 << 17 + 42 = 131114.0 = $00150000
|
||||||
|
Q.16: max ok = 1 << 16 - 1 = 65535.0 = $ffff0000
|
||||||
|
Q.16: min bad = 1 << 16 = 65536.0 = $00000000
|
||||||
|
Q.16: worse = 1 << 16 + 42 = 65578.0 = $002a0000
|
||||||
|
Q.17: max ok = 1 << 15 - 1 = 32767.0 = $fffe0000
|
||||||
|
Q.17: min bad = 1 << 15 = 32768.0 = $00000000
|
||||||
|
Q.17: worse = 1 << 15 + 42 = 32810.0 = $00540000
|
||||||
|
Q.18: max ok = 1 << 14 - 1 = 16383.0 = $fffc0000
|
||||||
|
Q.18: min bad = 1 << 14 = 16384.0 = $00000000
|
||||||
|
Q.18: worse = 1 << 14 + 42 = 16426.0 = $00a80000
|
||||||
|
Q.19: max ok = 1 << 13 - 1 = 8191.0 = $fff80000
|
||||||
|
Q.19: min bad = 1 << 13 = 8192.0 = $00000000
|
||||||
|
Q.19: worse = 1 << 13 + 42 = 8234.0 = $01500000
|
||||||
|
Q.20: max ok = 1 << 12 - 1 = 4095.0 = $fff00000
|
||||||
|
Q.20: min bad = 1 << 12 = 4096.0 = $00000000
|
||||||
|
Q.20: worse = 1 << 12 + 42 = 4138.0 = $02a00000
|
||||||
|
Q.21: max ok = 1 << 11 - 1 = 2047.0 = $ffe00000
|
||||||
|
Q.21: min bad = 1 << 11 = 2048.0 = $00000000
|
||||||
|
Q.21: worse = 1 << 11 + 42 = 2090.0 = $05400000
|
||||||
|
Q.22: max ok = 1 << 10 - 1 = 1023.0 = $ffc00000
|
||||||
|
Q.22: min bad = 1 << 10 = 1024.0 = $00000000
|
||||||
|
Q.22: worse = 1 << 10 + 42 = 1066.0 = $0a800000
|
||||||
|
Q.23: max ok = 1 << 9 - 1 = 511.0 = $ff800000
|
||||||
|
Q.23: min bad = 1 << 9 = 512.0 = $00000000
|
||||||
|
Q.23: worse = 1 << 9 + 42 = 554.0 = $15000000
|
||||||
|
Q.24: max ok = 1 << 8 - 1 = 255.0 = $ff000000
|
||||||
|
Q.24: min bad = 1 << 8 = 256.0 = $00000000
|
||||||
|
Q.24: worse = 1 << 8 + 42 = 298.0 = $2a000000
|
||||||
|
Q.25: max ok = 1 << 7 - 1 = 127.0 = $fe000000
|
||||||
|
Q.25: min bad = 1 << 7 = 128.0 = $00000000
|
||||||
|
Q.25: worse = 1 << 7 + 42 = 170.0 = $54000000
|
||||||
|
Q.26: max ok = 1 << 6 - 1 = 63.0 = $fc000000
|
||||||
|
Q.26: min bad = 1 << 6 = 64.0 = $00000000
|
||||||
|
Q.26: worse = 1 << 6 + 42 = 106.0 = $a8000000
|
||||||
|
Q.27: max ok = 1 << 5 - 1 = 31.0 = $f8000000
|
||||||
|
Q.27: min bad = 1 << 5 = 32.0 = $00000000
|
||||||
|
Q.27: worse = 1 << 5 + 42 = 74.0 = $50000000
|
||||||
|
Q.28: max ok = 1 << 4 - 1 = 15.0 = $f0000000
|
||||||
|
Q.28: min bad = 1 << 4 = 16.0 = $00000000
|
||||||
|
Q.28: worse = 1 << 4 + 42 = 58.0 = $a0000000
|
||||||
|
Q.29: max ok = 1 << 3 - 1 = 7.0 = $e0000000
|
||||||
|
Q.29: min bad = 1 << 3 = 8.0 = $00000000
|
||||||
|
Q.29: worse = 1 << 3 + 42 = 50.0 = $40000000
|
||||||
|
Q.30: max ok = 1 << 2 - 1 = 3.0 = $c0000000
|
||||||
|
Q.30: min bad = 1 << 2 = 4.0 = $00000000
|
||||||
|
Q.30: worse = 1 << 2 + 42 = 46.0 = $80000000
|
||||||
|
Q.31: max ok = 1 << 1 - 1 = 1.0 = $80000000
|
||||||
|
Q.31: min bad = 1 << 1 = 2.0 = $00000000
|
||||||
|
Q.31: worse = 1 << 1 + 42 = 44.0 = $00000000
|
||||||
|
|||||||
Reference in New Issue
Block a user