summaryrefslogtreecommitdiff
path: root/expt_0707_1.cu
diff options
context:
space:
mode:
Diffstat (limited to 'expt_0707_1.cu')
-rw-r--r--expt_0707_1.cu38
1 files changed, 38 insertions, 0 deletions
diff --git a/expt_0707_1.cu b/expt_0707_1.cu
new file mode 100644
index 0000000..61a53c6
--- /dev/null
+++ b/expt_0707_1.cu
@@ -0,0 +1,38 @@
+
+#include <cstdio>
+#include <iostream>
+#define PRINTF_BINARY_PATTERN_INT8 "%c%c%c%c%c%c%c%c"
+#define PRINTF_BYTE_TO_BINARY_INT8(i) \
+ (int)((((i) >> 7) & 1ull) + '0'), (int)((((i) >> 6) & 1ull) + '0'), \
+ (int)((((i) >> 5) & 1ull) + '0'), (int)((((i) >> 4) & 1ull) + '0'), \
+ (int)((((i) >> 3) & 1ull) + '0'), (int)((((i) >> 2) & 1ull) + '0'), \
+ (int)((((i) >> 1) & 1ull) + '0'), (int)((((i)) & 1ull) + '0')
+
+#define PRINTF_BINARY_PATTERN_INT16 \
+ PRINTF_BINARY_PATTERN_INT8 PRINTF_BINARY_PATTERN_INT8
+#define PRINTF_BYTE_TO_BINARY_INT16(i) \
+ PRINTF_BYTE_TO_BINARY_INT8((i) >> 8), PRINTF_BYTE_TO_BINARY_INT8(i)
+#define PRINTF_BINARY_PATTERN_INT32 \
+ PRINTF_BINARY_PATTERN_INT16 PRINTF_BINARY_PATTERN_INT16
+#define PRINTF_BYTE_TO_BINARY_INT32(i) \
+ PRINTF_BYTE_TO_BINARY_INT16((i) >> 16), PRINTF_BYTE_TO_BINARY_INT16(i)
+#define PRINTF_BINARY_PATTERN_INT64 \
+ PRINTF_BINARY_PATTERN_INT32 PRINTF_BINARY_PATTERN_INT32
+#define PRINTF_BYTE_TO_BINARY_INT64(i) \
+ PRINTF_BYTE_TO_BINARY_INT32((i) >> 32), PRINTF_BYTE_TO_BINARY_INT32(i)
+/* --- end macros --- */
+
+__global__ void test() {
+
+ auto last_known_point = 10981552822ULL, val = 10960094149ULL;
+ auto x = last_known_point - val;
+ printf("last_known_point =%llu, val = %llu " PRINTF_BINARY_PATTERN_INT64 "\n",
+ last_known_point, val,
+ PRINTF_BYTE_TO_BINARY_INT64(last_known_point - val));
+}
+
+int main() {
+ std::cout << (PRINTF_BINARY_PATTERN_INT64) << std::endl;
+ test<<<1, 1>>>();
+ cudaDeviceSynchronize();
+} \ No newline at end of file