| /* |
| * Copyright 2016 The Emscripten Authors. All rights reserved. |
| * Emscripten is available under two separate licenses, the MIT license and the |
| * University of Illinois/NCSA Open Source License. Both these licenses can be |
| * found in the LICENSE file. |
| */ |
| |
| #include <stdio.h> |
| int main() |
| { |
| long long a = 0x2b00505c10; |
| long long b = a >> 29; |
| long long c = a >> 32; |
| long long d = a >> 34; |
| printf("*%lld,%lld,%lld,%lld*\n", a, b, c, d); |
| unsigned long long ua = 0x2b00505c10; |
| unsigned long long ub = ua >> 29; |
| unsigned long long uc = ua >> 32; |
| unsigned long long ud = ua >> 34; |
| printf("*%lld,%lld,%lld,%lld*\n", ua, ub, uc, ud); |
| |
| long long x = 0x0000def123450789ULL; // any bigger than this, and we |
| long long y = 0x00020ef123456089ULL; // start to run into the double precision limit! |
| printf("*%lld,%lld,%lld,%lld,%lld*\n", x, y, x | y, x & y, x ^ y); |
| |
| printf("*"); |
| long long z = 13; |
| int n = 0; |
| while (z > 1) { |
| printf("%.2f,", (float)z); // these must be integers! |
| z = z >> 1; |
| n++; |
| } |
| printf("*%d*\n", n); |
| return 0; |
| } |