fork download
  1. #include <stdio.h>
  2.  
  3.  
  4. double max_double(){
  5. double t1=1,t2=1,d=1,p;
  6. for(;;){
  7. t2=t1+d;
  8. if (t2-t1==t2 || t2<0){
  9. d/=2;
  10. } else
  11. if (t1==t2){
  12. return t2;
  13. }
  14. else
  15. if (t2>0){
  16. p=d*2;
  17. if (p>0 && p-d!=p)
  18. d=p;
  19. t1=t2;
  20. }
  21. }
  22. }
  23.  
  24.  
  25. long long max_longlong(){
  26. long long t1=1,t2=1,d=1,p;
  27. for(;;){
  28. t2=t1+d;
  29. printf(" %lld = %lld + %lld\n",t2,t1,d);
  30. if (t2-t1==t2 || t2<0){
  31. d/=2;
  32. } else
  33. if (t1==t2){
  34. return t2;
  35. }
  36. else
  37. if (t2>0){
  38. p=d*2;
  39. if (p>0 && p-d!=p)
  40. d=p;
  41. t1=t2;
  42. }
  43. }
  44. }
  45.  
  46. float max_float(){
  47. float t1=1,t2=1,d=1,p;
  48. for(;;){
  49. printf(" %e = %e + %e\n",t2,t1,d);
  50. t2=t1+d;
  51. if (t2-t1==t2 || t2<0){
  52. d/=2;
  53. } else
  54. if (t1==t2){
  55. return t2;
  56. }
  57. else
  58. if (t2>0){
  59. p=d*2;
  60. if (p>0 && p-d!=p)
  61. d=p;
  62. t1=t2;
  63. }
  64. }
  65. }
  66.  
  67. float min_float(){
  68. float t1=-1,t2=-1,d=1,p;
  69. for(;;){
  70. t2=t1-d;
  71. if (t2+t1==t2 || t2>0){
  72. d/=2;
  73. }
  74. else
  75. if (t1==t2){
  76. return t2;
  77. }
  78. else
  79. if (t2<0){
  80. p=d*2;
  81. if (p>0 && p-d!=p)
  82. d=p;
  83. t1=t2;
  84. }
  85. }
  86. }
  87.  
  88.  
  89.  
  90.  
  91. int main()
  92. {
  93. printf("float %e ... %e\n",min_float(),max_float());
  94. printf("double ... %e\n",max_double());
  95. printf("long long ... %lld\n",max_longlong());
  96. return 0;
  97. }
  98.  
Success #stdin #stdout 0s 4532KB
stdin
Standard input is empty
stdout
        1.000000e+00 = 1.000000e+00 + 1.000000e+00
        2.000000e+00 = 2.000000e+00 + 2.000000e+00
        4.000000e+00 = 4.000000e+00 + 4.000000e+00
        8.000000e+00 = 8.000000e+00 + 8.000000e+00
        1.600000e+01 = 1.600000e+01 + 1.600000e+01
        3.200000e+01 = 3.200000e+01 + 3.200000e+01
        6.400000e+01 = 6.400000e+01 + 6.400000e+01
        1.280000e+02 = 1.280000e+02 + 1.280000e+02
        2.560000e+02 = 2.560000e+02 + 2.560000e+02
        5.120000e+02 = 5.120000e+02 + 5.120000e+02
        1.024000e+03 = 1.024000e+03 + 1.024000e+03
        2.048000e+03 = 2.048000e+03 + 2.048000e+03
        4.096000e+03 = 4.096000e+03 + 4.096000e+03
        8.192000e+03 = 8.192000e+03 + 8.192000e+03
        1.638400e+04 = 1.638400e+04 + 1.638400e+04
        3.276800e+04 = 3.276800e+04 + 3.276800e+04
        6.553600e+04 = 6.553600e+04 + 6.553600e+04
        1.310720e+05 = 1.310720e+05 + 1.310720e+05
        2.621440e+05 = 2.621440e+05 + 2.621440e+05
        5.242880e+05 = 5.242880e+05 + 5.242880e+05
        1.048576e+06 = 1.048576e+06 + 1.048576e+06
        2.097152e+06 = 2.097152e+06 + 2.097152e+06
        4.194304e+06 = 4.194304e+06 + 4.194304e+06
        8.388608e+06 = 8.388608e+06 + 8.388608e+06
        1.677722e+07 = 1.677722e+07 + 1.677722e+07
        3.355443e+07 = 3.355443e+07 + 3.355443e+07
        6.710886e+07 = 6.710886e+07 + 6.710886e+07
        1.342177e+08 = 1.342177e+08 + 1.342177e+08
        2.684355e+08 = 2.684355e+08 + 2.684355e+08
        5.368709e+08 = 5.368709e+08 + 5.368709e+08
        1.073742e+09 = 1.073742e+09 + 1.073742e+09
        2.147484e+09 = 2.147484e+09 + 2.147484e+09
        4.294967e+09 = 4.294967e+09 + 4.294967e+09
        8.589935e+09 = 8.589935e+09 + 8.589935e+09
        1.717987e+10 = 1.717987e+10 + 1.717987e+10
        3.435974e+10 = 3.435974e+10 + 3.435974e+10
        6.871948e+10 = 6.871948e+10 + 6.871948e+10
        1.374390e+11 = 1.374390e+11 + 1.374390e+11
        2.748779e+11 = 2.748779e+11 + 2.748779e+11
        5.497558e+11 = 5.497558e+11 + 5.497558e+11
        1.099512e+12 = 1.099512e+12 + 1.099512e+12
        2.199023e+12 = 2.199023e+12 + 2.199023e+12
        4.398047e+12 = 4.398047e+12 + 4.398047e+12
        8.796093e+12 = 8.796093e+12 + 8.796093e+12
        1.759219e+13 = 1.759219e+13 + 1.759219e+13
        3.518437e+13 = 3.518437e+13 + 3.518437e+13
        7.036874e+13 = 7.036874e+13 + 7.036874e+13
        1.407375e+14 = 1.407375e+14 + 1.407375e+14
        2.814750e+14 = 2.814750e+14 + 2.814750e+14
        5.629500e+14 = 5.629500e+14 + 5.629500e+14
        1.125900e+15 = 1.125900e+15 + 1.125900e+15
        2.251800e+15 = 2.251800e+15 + 2.251800e+15
        4.503600e+15 = 4.503600e+15 + 4.503600e+15
        9.007199e+15 = 9.007199e+15 + 9.007199e+15
        1.801440e+16 = 1.801440e+16 + 1.801440e+16
        3.602880e+16 = 3.602880e+16 + 3.602880e+16
        7.205759e+16 = 7.205759e+16 + 7.205759e+16
        1.441152e+17 = 1.441152e+17 + 1.441152e+17
        2.882304e+17 = 2.882304e+17 + 2.882304e+17
        5.764608e+17 = 5.764608e+17 + 5.764608e+17
        1.152922e+18 = 1.152922e+18 + 1.152922e+18
        2.305843e+18 = 2.305843e+18 + 2.305843e+18
        4.611686e+18 = 4.611686e+18 + 4.611686e+18
        9.223372e+18 = 9.223372e+18 + 9.223372e+18
        1.844674e+19 = 1.844674e+19 + 1.844674e+19
        3.689349e+19 = 3.689349e+19 + 3.689349e+19
        7.378698e+19 = 7.378698e+19 + 7.378698e+19
        1.475740e+20 = 1.475740e+20 + 1.475740e+20
        2.951479e+20 = 2.951479e+20 + 2.951479e+20
        5.902958e+20 = 5.902958e+20 + 5.902958e+20
        1.180592e+21 = 1.180592e+21 + 1.180592e+21
        2.361183e+21 = 2.361183e+21 + 2.361183e+21
        4.722366e+21 = 4.722366e+21 + 4.722366e+21
        9.444733e+21 = 9.444733e+21 + 9.444733e+21
        1.888947e+22 = 1.888947e+22 + 1.888947e+22
        3.777893e+22 = 3.777893e+22 + 3.777893e+22
        7.555786e+22 = 7.555786e+22 + 7.555786e+22
        1.511157e+23 = 1.511157e+23 + 1.511157e+23
        3.022315e+23 = 3.022315e+23 + 3.022315e+23
        6.044629e+23 = 6.044629e+23 + 6.044629e+23
        1.208926e+24 = 1.208926e+24 + 1.208926e+24
        2.417852e+24 = 2.417852e+24 + 2.417852e+24
        4.835703e+24 = 4.835703e+24 + 4.835703e+24
        9.671407e+24 = 9.671407e+24 + 9.671407e+24
        1.934281e+25 = 1.934281e+25 + 1.934281e+25
        3.868563e+25 = 3.868563e+25 + 3.868563e+25
        7.737125e+25 = 7.737125e+25 + 7.737125e+25
        1.547425e+26 = 1.547425e+26 + 1.547425e+26
        3.094850e+26 = 3.094850e+26 + 3.094850e+26
        6.189700e+26 = 6.189700e+26 + 6.189700e+26
        1.237940e+27 = 1.237940e+27 + 1.237940e+27
        2.475880e+27 = 2.475880e+27 + 2.475880e+27
        4.951760e+27 = 4.951760e+27 + 4.951760e+27
        9.903520e+27 = 9.903520e+27 + 9.903520e+27
        1.980704e+28 = 1.980704e+28 + 1.980704e+28
        3.961408e+28 = 3.961408e+28 + 3.961408e+28
        7.922816e+28 = 7.922816e+28 + 7.922816e+28
        1.584563e+29 = 1.584563e+29 + 1.584563e+29
        3.169127e+29 = 3.169127e+29 + 3.169127e+29
        6.338253e+29 = 6.338253e+29 + 6.338253e+29
        1.267651e+30 = 1.267651e+30 + 1.267651e+30
        2.535301e+30 = 2.535301e+30 + 2.535301e+30
        5.070602e+30 = 5.070602e+30 + 5.070602e+30
        1.014120e+31 = 1.014120e+31 + 1.014120e+31
        2.028241e+31 = 2.028241e+31 + 2.028241e+31
        4.056482e+31 = 4.056482e+31 + 4.056482e+31
        8.112964e+31 = 8.112964e+31 + 8.112964e+31
        1.622593e+32 = 1.622593e+32 + 1.622593e+32
        3.245186e+32 = 3.245186e+32 + 3.245186e+32
        6.490371e+32 = 6.490371e+32 + 6.490371e+32
        1.298074e+33 = 1.298074e+33 + 1.298074e+33
        2.596148e+33 = 2.596148e+33 + 2.596148e+33
        5.192297e+33 = 5.192297e+33 + 5.192297e+33
        1.038459e+34 = 1.038459e+34 + 1.038459e+34
        2.076919e+34 = 2.076919e+34 + 2.076919e+34
        4.153837e+34 = 4.153837e+34 + 4.153837e+34
        8.307675e+34 = 8.307675e+34 + 8.307675e+34
        1.661535e+35 = 1.661535e+35 + 1.661535e+35
        3.323070e+35 = 3.323070e+35 + 3.323070e+35
        6.646140e+35 = 6.646140e+35 + 6.646140e+35
        1.329228e+36 = 1.329228e+36 + 1.329228e+36
        2.658456e+36 = 2.658456e+36 + 2.658456e+36
        5.316912e+36 = 5.316912e+36 + 5.316912e+36
        1.063382e+37 = 1.063382e+37 + 1.063382e+37
        2.126765e+37 = 2.126765e+37 + 2.126765e+37
        4.253530e+37 = 4.253530e+37 + 4.253530e+37
        8.507059e+37 = 8.507059e+37 + 8.507059e+37
        1.701412e+38 = 1.701412e+38 + 1.701412e+38
        inf = 1.701412e+38 + 8.507059e+37
        2.552118e+38 = 2.552118e+38 + 1.701412e+38
        inf = 2.552118e+38 + 8.507059e+37
        inf = 2.552118e+38 + 4.253530e+37
        2.977471e+38 = 2.977471e+38 + 8.507059e+37
        inf = 2.977471e+38 + 4.253530e+37
        inf = 2.977471e+38 + 2.126765e+37
        3.190147e+38 = 3.190147e+38 + 4.253530e+37
        inf = 3.190147e+38 + 2.126765e+37
        inf = 3.190147e+38 + 1.063382e+37
        3.296485e+38 = 3.296485e+38 + 2.126765e+37
        inf = 3.296485e+38 + 1.063382e+37
        inf = 3.296485e+38 + 5.316912e+36
        3.349655e+38 = 3.349655e+38 + 1.063382e+37
        inf = 3.349655e+38 + 5.316912e+36
        inf = 3.349655e+38 + 2.658456e+36
        3.376239e+38 = 3.376239e+38 + 5.316912e+36
        inf = 3.376239e+38 + 2.658456e+36
        inf = 3.376239e+38 + 1.329228e+36
        3.389531e+38 = 3.389531e+38 + 2.658456e+36
        inf = 3.389531e+38 + 1.329228e+36
        inf = 3.389531e+38 + 6.646140e+35
        3.396178e+38 = 3.396178e+38 + 1.329228e+36
        inf = 3.396178e+38 + 6.646140e+35
        inf = 3.396178e+38 + 3.323070e+35
        3.399501e+38 = 3.399501e+38 + 6.646140e+35
        inf = 3.399501e+38 + 3.323070e+35
        inf = 3.399501e+38 + 1.661535e+35
        3.401162e+38 = 3.401162e+38 + 3.323070e+35
        inf = 3.401162e+38 + 1.661535e+35
        inf = 3.401162e+38 + 8.307675e+34
        3.401993e+38 = 3.401993e+38 + 1.661535e+35
        inf = 3.401993e+38 + 8.307675e+34
        inf = 3.401993e+38 + 4.153837e+34
        3.402408e+38 = 3.402408e+38 + 8.307675e+34
        inf = 3.402408e+38 + 4.153837e+34
        inf = 3.402408e+38 + 2.076919e+34
        3.402616e+38 = 3.402616e+38 + 4.153837e+34
        inf = 3.402616e+38 + 2.076919e+34
        inf = 3.402616e+38 + 1.038459e+34
        3.402720e+38 = 3.402720e+38 + 2.076919e+34
        inf = 3.402720e+38 + 1.038459e+34
        inf = 3.402720e+38 + 5.192297e+33
        3.402772e+38 = 3.402772e+38 + 1.038459e+34
        inf = 3.402772e+38 + 5.192297e+33
        inf = 3.402772e+38 + 2.596148e+33
        3.402798e+38 = 3.402798e+38 + 5.192297e+33
        inf = 3.402798e+38 + 2.596148e+33
        inf = 3.402798e+38 + 1.298074e+33
        3.402811e+38 = 3.402811e+38 + 2.596148e+33
        inf = 3.402811e+38 + 1.298074e+33
        inf = 3.402811e+38 + 6.490371e+32
        3.402817e+38 = 3.402817e+38 + 1.298074e+33
        inf = 3.402817e+38 + 6.490371e+32
        inf = 3.402817e+38 + 3.245186e+32
        3.402820e+38 = 3.402820e+38 + 6.490371e+32
        inf = 3.402820e+38 + 3.245186e+32
        inf = 3.402820e+38 + 1.622593e+32
        3.402822e+38 = 3.402822e+38 + 3.245186e+32
        inf = 3.402822e+38 + 1.622593e+32
        inf = 3.402822e+38 + 8.112964e+31
        3.402823e+38 = 3.402823e+38 + 1.622593e+32
        inf = 3.402823e+38 + 8.112964e+31
        inf = 3.402823e+38 + 4.056482e+31
        3.402823e+38 = 3.402823e+38 + 8.112964e+31
        inf = 3.402823e+38 + 4.056482e+31
        inf = 3.402823e+38 + 2.028241e+31
        3.402823e+38 = 3.402823e+38 + 4.056482e+31
        inf = 3.402823e+38 + 2.028241e+31
        inf = 3.402823e+38 + 1.014120e+31
        inf = 3.402823e+38 + 5.070602e+30
float  -3.402823e+38 ... 3.402823e+38
double ... 1.797693e+308
        2 = 1 + 1
        4 = 2 + 2
        8 = 4 + 4
        16 = 8 + 8
        32 = 16 + 16
        64 = 32 + 32
        128 = 64 + 64
        256 = 128 + 128
        512 = 256 + 256
        1024 = 512 + 512
        2048 = 1024 + 1024
        4096 = 2048 + 2048
        8192 = 4096 + 4096
        16384 = 8192 + 8192
        32768 = 16384 + 16384
        65536 = 32768 + 32768
        131072 = 65536 + 65536
        262144 = 131072 + 131072
        524288 = 262144 + 262144
        1048576 = 524288 + 524288
        2097152 = 1048576 + 1048576
        4194304 = 2097152 + 2097152
        8388608 = 4194304 + 4194304
        16777216 = 8388608 + 8388608
        33554432 = 16777216 + 16777216
        67108864 = 33554432 + 33554432
        134217728 = 67108864 + 67108864
        268435456 = 134217728 + 134217728
        536870912 = 268435456 + 268435456
        1073741824 = 536870912 + 536870912
        2147483648 = 1073741824 + 1073741824
        4294967296 = 2147483648 + 2147483648
        8589934592 = 4294967296 + 4294967296
        17179869184 = 8589934592 + 8589934592
        34359738368 = 17179869184 + 17179869184
        68719476736 = 34359738368 + 34359738368
        137438953472 = 68719476736 + 68719476736
        274877906944 = 137438953472 + 137438953472
        549755813888 = 274877906944 + 274877906944
        1099511627776 = 549755813888 + 549755813888
        2199023255552 = 1099511627776 + 1099511627776
        4398046511104 = 2199023255552 + 2199023255552
        8796093022208 = 4398046511104 + 4398046511104
        17592186044416 = 8796093022208 + 8796093022208
        35184372088832 = 17592186044416 + 17592186044416
        70368744177664 = 35184372088832 + 35184372088832
        140737488355328 = 70368744177664 + 70368744177664
        281474976710656 = 140737488355328 + 140737488355328
        562949953421312 = 281474976710656 + 281474976710656
        1125899906842624 = 562949953421312 + 562949953421312
        2251799813685248 = 1125899906842624 + 1125899906842624
        4503599627370496 = 2251799813685248 + 2251799813685248
        9007199254740992 = 4503599627370496 + 4503599627370496
        18014398509481984 = 9007199254740992 + 9007199254740992
        36028797018963968 = 18014398509481984 + 18014398509481984
        72057594037927936 = 36028797018963968 + 36028797018963968
        144115188075855872 = 72057594037927936 + 72057594037927936
        288230376151711744 = 144115188075855872 + 144115188075855872
        576460752303423488 = 288230376151711744 + 288230376151711744
        1152921504606846976 = 576460752303423488 + 576460752303423488
        2305843009213693952 = 1152921504606846976 + 1152921504606846976
        4611686018427387904 = 2305843009213693952 + 2305843009213693952
        -9223372036854775808 = 4611686018427387904 + 4611686018427387904
        6917529027641081856 = 4611686018427387904 + 2305843009213693952
        -6917529027641081856 = 6917529027641081856 + 4611686018427387904
        -9223372036854775808 = 6917529027641081856 + 2305843009213693952
        8070450532247928832 = 6917529027641081856 + 1152921504606846976
        -8070450532247928832 = 8070450532247928832 + 2305843009213693952
        -9223372036854775808 = 8070450532247928832 + 1152921504606846976
        8646911284551352320 = 8070450532247928832 + 576460752303423488
        -8646911284551352320 = 8646911284551352320 + 1152921504606846976
        -9223372036854775808 = 8646911284551352320 + 576460752303423488
        8935141660703064064 = 8646911284551352320 + 288230376151711744
        -8935141660703064064 = 8935141660703064064 + 576460752303423488
        -9223372036854775808 = 8935141660703064064 + 288230376151711744
        9079256848778919936 = 8935141660703064064 + 144115188075855872
        -9079256848778919936 = 9079256848778919936 + 288230376151711744
        -9223372036854775808 = 9079256848778919936 + 144115188075855872
        9151314442816847872 = 9079256848778919936 + 72057594037927936
        -9151314442816847872 = 9151314442816847872 + 144115188075855872
        -9223372036854775808 = 9151314442816847872 + 72057594037927936
        9187343239835811840 = 9151314442816847872 + 36028797018963968
        -9187343239835811840 = 9187343239835811840 + 72057594037927936
        -9223372036854775808 = 9187343239835811840 + 36028797018963968
        9205357638345293824 = 9187343239835811840 + 18014398509481984
        -9205357638345293824 = 9205357638345293824 + 36028797018963968
        -9223372036854775808 = 9205357638345293824 + 18014398509481984
        9214364837600034816 = 9205357638345293824 + 9007199254740992
        -9214364837600034816 = 9214364837600034816 + 18014398509481984
        -9223372036854775808 = 9214364837600034816 + 9007199254740992
        9218868437227405312 = 9214364837600034816 + 4503599627370496
        -9218868437227405312 = 9218868437227405312 + 9007199254740992
        -9223372036854775808 = 9218868437227405312 + 4503599627370496
        9221120237041090560 = 9218868437227405312 + 2251799813685248
        -9221120237041090560 = 9221120237041090560 + 4503599627370496
        -9223372036854775808 = 9221120237041090560 + 2251799813685248
        9222246136947933184 = 9221120237041090560 + 1125899906842624
        -9222246136947933184 = 9222246136947933184 + 2251799813685248
        -9223372036854775808 = 9222246136947933184 + 1125899906842624
        9222809086901354496 = 9222246136947933184 + 562949953421312
        -9222809086901354496 = 9222809086901354496 + 1125899906842624
        -9223372036854775808 = 9222809086901354496 + 562949953421312
        9223090561878065152 = 9222809086901354496 + 281474976710656
        -9223090561878065152 = 9223090561878065152 + 562949953421312
        -9223372036854775808 = 9223090561878065152 + 281474976710656
        9223231299366420480 = 9223090561878065152 + 140737488355328
        -9223231299366420480 = 9223231299366420480 + 281474976710656
        -9223372036854775808 = 9223231299366420480 + 140737488355328
        9223301668110598144 = 9223231299366420480 + 70368744177664
        -9223301668110598144 = 9223301668110598144 + 140737488355328
        -9223372036854775808 = 9223301668110598144 + 70368744177664
        9223336852482686976 = 9223301668110598144 + 35184372088832
        -9223336852482686976 = 9223336852482686976 + 70368744177664
        -9223372036854775808 = 9223336852482686976 + 35184372088832
        9223354444668731392 = 9223336852482686976 + 17592186044416
        -9223354444668731392 = 9223354444668731392 + 35184372088832
        -9223372036854775808 = 9223354444668731392 + 17592186044416
        9223363240761753600 = 9223354444668731392 + 8796093022208
        -9223363240761753600 = 9223363240761753600 + 17592186044416
        -9223372036854775808 = 9223363240761753600 + 8796093022208
        9223367638808264704 = 9223363240761753600 + 4398046511104
        -9223367638808264704 = 9223367638808264704 + 8796093022208
        -9223372036854775808 = 9223367638808264704 + 4398046511104
        9223369837831520256 = 9223367638808264704 + 2199023255552
        -9223369837831520256 = 9223369837831520256 + 4398046511104
        -9223372036854775808 = 9223369837831520256 + 2199023255552
        9223370937343148032 = 9223369837831520256 + 1099511627776
        -9223370937343148032 = 9223370937343148032 + 2199023255552
        -9223372036854775808 = 9223370937343148032 + 1099511627776
        9223371487098961920 = 9223370937343148032 + 549755813888
        -9223371487098961920 = 9223371487098961920 + 1099511627776
        -9223372036854775808 = 9223371487098961920 + 549755813888
        9223371761976868864 = 9223371487098961920 + 274877906944
        -9223371761976868864 = 9223371761976868864 + 549755813888
        -9223372036854775808 = 9223371761976868864 + 274877906944
        9223371899415822336 = 9223371761976868864 + 137438953472
        -9223371899415822336 = 9223371899415822336 + 274877906944
        -9223372036854775808 = 9223371899415822336 + 137438953472
        9223371968135299072 = 9223371899415822336 + 68719476736
        -9223371968135299072 = 9223371968135299072 + 137438953472
        -9223372036854775808 = 9223371968135299072 + 68719476736
        9223372002495037440 = 9223371968135299072 + 34359738368
        -9223372002495037440 = 9223372002495037440 + 68719476736
        -9223372036854775808 = 9223372002495037440 + 34359738368
        9223372019674906624 = 9223372002495037440 + 17179869184
        -9223372019674906624 = 9223372019674906624 + 34359738368
        -9223372036854775808 = 9223372019674906624 + 17179869184
        9223372028264841216 = 9223372019674906624 + 8589934592
        -9223372028264841216 = 9223372028264841216 + 17179869184
        -9223372036854775808 = 9223372028264841216 + 8589934592
        9223372032559808512 = 9223372028264841216 + 4294967296
        -9223372032559808512 = 9223372032559808512 + 8589934592
        -9223372036854775808 = 9223372032559808512 + 4294967296
        9223372034707292160 = 9223372032559808512 + 2147483648
        -9223372034707292160 = 9223372034707292160 + 4294967296
        -9223372036854775808 = 9223372034707292160 + 2147483648
        9223372035781033984 = 9223372034707292160 + 1073741824
        -9223372035781033984 = 9223372035781033984 + 2147483648
        -9223372036854775808 = 9223372035781033984 + 1073741824
        9223372036317904896 = 9223372035781033984 + 536870912
        -9223372036317904896 = 9223372036317904896 + 1073741824
        -9223372036854775808 = 9223372036317904896 + 536870912
        9223372036586340352 = 9223372036317904896 + 268435456
        -9223372036586340352 = 9223372036586340352 + 536870912
        -9223372036854775808 = 9223372036586340352 + 268435456
        9223372036720558080 = 9223372036586340352 + 134217728
        -9223372036720558080 = 9223372036720558080 + 268435456
        -9223372036854775808 = 9223372036720558080 + 134217728
        9223372036787666944 = 9223372036720558080 + 67108864
        -9223372036787666944 = 9223372036787666944 + 134217728
        -9223372036854775808 = 9223372036787666944 + 67108864
        9223372036821221376 = 9223372036787666944 + 33554432
        -9223372036821221376 = 9223372036821221376 + 67108864
        -9223372036854775808 = 9223372036821221376 + 33554432
        9223372036837998592 = 9223372036821221376 + 16777216
        -9223372036837998592 = 9223372036837998592 + 33554432
        -9223372036854775808 = 9223372036837998592 + 16777216
        9223372036846387200 = 9223372036837998592 + 8388608
        -9223372036846387200 = 9223372036846387200 + 16777216
        -9223372036854775808 = 9223372036846387200 + 8388608
        9223372036850581504 = 9223372036846387200 + 4194304
        -9223372036850581504 = 9223372036850581504 + 8388608
        -9223372036854775808 = 9223372036850581504 + 4194304
        9223372036852678656 = 9223372036850581504 + 2097152
        -9223372036852678656 = 9223372036852678656 + 4194304
        -9223372036854775808 = 9223372036852678656 + 2097152
        9223372036853727232 = 9223372036852678656 + 1048576
        -9223372036853727232 = 9223372036853727232 + 2097152
        -9223372036854775808 = 9223372036853727232 + 1048576
        9223372036854251520 = 9223372036853727232 + 524288
        -9223372036854251520 = 9223372036854251520 + 1048576
        -9223372036854775808 = 9223372036854251520 + 524288
        9223372036854513664 = 9223372036854251520 + 262144
        -9223372036854513664 = 9223372036854513664 + 524288
        -9223372036854775808 = 9223372036854513664 + 262144
        9223372036854644736 = 9223372036854513664 + 131072
        -9223372036854644736 = 9223372036854644736 + 262144
        -9223372036854775808 = 9223372036854644736 + 131072
        9223372036854710272 = 9223372036854644736 + 65536
        -9223372036854710272 = 9223372036854710272 + 131072
        -9223372036854775808 = 9223372036854710272 + 65536
        9223372036854743040 = 9223372036854710272 + 32768
        -9223372036854743040 = 9223372036854743040 + 65536
        -9223372036854775808 = 9223372036854743040 + 32768
        9223372036854759424 = 9223372036854743040 + 16384
        -9223372036854759424 = 9223372036854759424 + 32768
        -9223372036854775808 = 9223372036854759424 + 16384
        9223372036854767616 = 9223372036854759424 + 8192
        -9223372036854767616 = 9223372036854767616 + 16384
        -9223372036854775808 = 9223372036854767616 + 8192
        9223372036854771712 = 9223372036854767616 + 4096
        -9223372036854771712 = 9223372036854771712 + 8192
        -9223372036854775808 = 9223372036854771712 + 4096
        9223372036854773760 = 9223372036854771712 + 2048
        -9223372036854773760 = 9223372036854773760 + 4096
        -9223372036854775808 = 9223372036854773760 + 2048
        9223372036854774784 = 9223372036854773760 + 1024
        -9223372036854774784 = 9223372036854774784 + 2048
        -9223372036854775808 = 9223372036854774784 + 1024
        9223372036854775296 = 9223372036854774784 + 512
        -9223372036854775296 = 9223372036854775296 + 1024
        -9223372036854775808 = 9223372036854775296 + 512
        9223372036854775552 = 9223372036854775296 + 256
        -9223372036854775552 = 9223372036854775552 + 512
        -9223372036854775808 = 9223372036854775552 + 256
        9223372036854775680 = 9223372036854775552 + 128
        -9223372036854775680 = 9223372036854775680 + 256
        -9223372036854775808 = 9223372036854775680 + 128
        9223372036854775744 = 9223372036854775680 + 64
        -9223372036854775744 = 9223372036854775744 + 128
        -9223372036854775808 = 9223372036854775744 + 64
        9223372036854775776 = 9223372036854775744 + 32
        -9223372036854775776 = 9223372036854775776 + 64
        -9223372036854775808 = 9223372036854775776 + 32
        9223372036854775792 = 9223372036854775776 + 16
        -9223372036854775792 = 9223372036854775792 + 32
        -9223372036854775808 = 9223372036854775792 + 16
        9223372036854775800 = 9223372036854775792 + 8
        -9223372036854775800 = 9223372036854775800 + 16
        -9223372036854775808 = 9223372036854775800 + 8
        9223372036854775804 = 9223372036854775800 + 4
        -9223372036854775804 = 9223372036854775804 + 8
        -9223372036854775808 = 9223372036854775804 + 4
        9223372036854775806 = 9223372036854775804 + 2
        -9223372036854775806 = 9223372036854775806 + 4
        -9223372036854775808 = 9223372036854775806 + 2
        9223372036854775807 = 9223372036854775806 + 1
        -9223372036854775807 = 9223372036854775807 + 2
        -9223372036854775808 = 9223372036854775807 + 1
        9223372036854775807 = 9223372036854775807 + 0
long long ... 9223372036854775807