| 123456789101112131415161718192021222324252627282930313233 |
- #include <stdint.h>
- #include <stdio.h>
- #include <stdlib.h>
- uint32_t ref(uint32_t a)
- {
- return (a + 128)/ 255;
- return (a + (65535/2))/ 65535;
- }
- uint32_t try1(a)
- {
- return (((uint64_t)a + 128)*257) / 65535LL;
- return (((uint64_t)a + 32767)*65538) / 4294967296LL;
- }
- int main()
- {
- uint32_t x = 0;
- do {
- uint32_t r1 = ref(x);
- uint32_t r2 = try1(x);
- if (r1 != r2) {
- printf("FAIL: %x -> %x %x\n", x, r1, r2);
- exit(1);
- }
- if (x == 0xffffffff)
- break;
- x++;
- } while (1);
- return 0;
- }
|