fork download
  1. #include <stdio.h>
  2.  
  3. static unsigned int pair2sci(unsigned int l[2]) {
  4. //return((l[0]<<8) | l[1]);
  5. return((256*l[0]) + l[1]);
  6. }
  7.  
  8.  
  9. unsigned int hash2integer(unsigned char h[32]) {
  10. unsigned int x = 0;
  11. unsigned int z = 0;
  12. for (int i = 0; i < 32; i++) {
  13. if (h[i] == 0) {
  14. x += 8;
  15. continue;
  16. } else if (h[i] < 2) {
  17. x += 7;
  18. z = h[i+1];
  19. } else if (h[i] < 4) {
  20. x += 6;
  21. z = (h[i+1] / 2) + ((h[i] % 2) * 128);
  22. } else if (h[i] < 8) {
  23. x += 5;
  24. z = (h[i+1] / 4) + ((h[i] % 4) * 64);
  25. } else if (h[i] < 16) {
  26. x += 4;
  27. z = (h[i+1] / 8) + ((h[i] % 8) * 32);
  28. } else if (h[i] < 32) {
  29. x += 3;
  30. z = (h[i+1] / 16) + ((h[i] % 16) * 16);
  31. } else if (h[i] < 64) {
  32. x += 2;
  33. z = (h[i+1] / 32) + ((h[i] % 32) * 8);
  34. } else if (h[i] < 128) {
  35. x += 1;
  36. z = (h[i+1] / 64) + ((h[i] % 64) * 4);
  37. } else {
  38. z = (h[i+1] / 128) + ((h[i] % 128) * 2);
  39. }
  40. break;
  41. }
  42. unsigned int y[2];
  43. y[0] = x;
  44. y[1] = z;
  45. return(pair2sci(y));
  46. }
  47.  
  48. void main() {
  49. unsigned char h[32] = {
  50. 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  51. 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  52. 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  53. };
  54. for (int i=0; i<0xff; i++) {
  55. h[0] -= 1;
  56. printf("%x %d\n", h[0], hash2integer(h));
  57. }
  58. }
  59.  
Runtime error #stdin #stdout 0s 4536KB
stdin
Standard input is empty
stdout
fe 253
fd 251
fc 249
fb 247
fa 245
f9 243
f8 241
f7 239
f6 237
f5 235
f4 233
f3 231
f2 229
f1 227
f0 225
ef 223
ee 221
ed 219
ec 217
eb 215
ea 213
e9 211
e8 209
e7 207
e6 205
e5 203
e4 201
e3 199
e2 197
e1 195
e0 193
df 191
de 189
dd 187
dc 185
db 183
da 181
d9 179
d8 177
d7 175
d6 173
d5 171
d4 169
d3 167
d2 165
d1 163
d0 161
cf 159
ce 157
cd 155
cc 153
cb 151
ca 149
c9 147
c8 145
c7 143
c6 141
c5 139
c4 137
c3 135
c2 133
c1 131
c0 129
bf 127
be 125
bd 123
bc 121
bb 119
ba 117
b9 115
b8 113
b7 111
b6 109
b5 107
b4 105
b3 103
b2 101
b1 99
b0 97
af 95
ae 93
ad 91
ac 89
ab 87
aa 85
a9 83
a8 81
a7 79
a6 77
a5 75
a4 73
a3 71
a2 69
a1 67
a0 65
9f 63
9e 61
9d 59
9c 57
9b 55
9a 53
99 51
98 49
97 47
96 45
95 43
94 41
93 39
92 37
91 35
90 33
8f 31
8e 29
8d 27
8c 25
8b 23
8a 21
89 19
88 17
87 15
86 13
85 11
84 9
83 7
82 5
81 3
80 1
7f 511
7e 507
7d 503
7c 499
7b 495
7a 491
79 487
78 483
77 479
76 475
75 471
74 467
73 463
72 459
71 455
70 451
6f 447
6e 443
6d 439
6c 435
6b 431
6a 427
69 423
68 419
67 415
66 411
65 407
64 403
63 399
62 395
61 391
60 387
5f 383
5e 379
5d 375
5c 371
5b 367
5a 363
59 359
58 355
57 351
56 347
55 343
54 339
53 335
52 331
51 327
50 323
4f 319
4e 315
4d 311
4c 307
4b 303
4a 299
49 295
48 291
47 287
46 283
45 279
44 275
43 271
42 267
41 263
40 259
3f 767
3e 759
3d 751
3c 743
3b 735
3a 727
39 719
38 711
37 703
36 695
35 687
34 679
33 671
32 663
31 655
30 647
2f 639
2e 631
2d 623
2c 615
2b 607
2a 599
29 591
28 583
27 575
26 567
25 559
24 551
23 543
22 535
21 527
20 519
1f 1023
1e 1007
1d 991
1c 975
1b 959
1a 943
19 927
18 911
17 895
16 879
15 863
14 847
13 831
12 815
11 799
10 783
f 1279
e 1247
d 1215
c 1183
b 1151
a 1119
9 1087
8 1055
7 1535
6 1471
5 1407
4 1343
3 1791
2 1663
1 2047
0 2303