Open aben20807 opened 1 year ago
https://godbolt.org/z/qzq4jWK6P
#include <stdio.h> #include <string.h> void longtobin1(unsigned long n) { char str[9]; snprintf(str,8, "%c%c%c%c%c%c%c%c", (unsigned char)((n >> 0) & 0xFF), (unsigned char)((n >> 8) & 0xFF), (unsigned char)((n >> 16) & 0xFF), (unsigned char)((n >> 24) & 0xFF), (unsigned char)((n >> 32) & 0xFF), (unsigned char)((n >> 40) & 0xFF), (unsigned char)((n >> 48) & 0xFF), (unsigned char)((n >> 56) & 0xFF)); for (int i = 0; i < 8; i++) { printf("%c", str[i]); } } void longtobin2(unsigned long n) { union { unsigned long i; char s[8]; }x = {n}; for (int i = 0; i < sizeof(n); i++) { printf("%c", x.s[i]); } } void longtobin3(unsigned long n) { char s[sizeof(n)]; memcpy(s, &n, sizeof(n)); for (int i = 0; i < sizeof(n); i++) { printf("%c", s[i]); } } int main(int argc, char *argv[]) { unsigned long n = 201339578400; longtobin1(n); longtobin2(n); longtobin3(n); return 0; }
https://godbolt.org/z/qzq4jWK6P