79126123

Date: 2024-10-25 14:32:54
Score: 1.5
Natty:
Report link

@Eljay's code is correct. You could also create a helper function to combines multiple characters into a uint64_t magic file number.

#include <cstdint>
#include <iostream>

constexpr uint64_t make_magic(const char* str) {
    return (static_cast<uint64_t>(str[0]) << 56) |
           (static_cast<uint64_t>(str[1]) << 48) |
           (static_cast<uint64_t>(str[2]) << 40) |
           (static_cast<uint64_t>(str[3]) << 32) |
           (static_cast<uint64_t>(str[4]) << 24) |
           (static_cast<uint64_t>(str[5]) << 16) |
           (static_cast<uint64_t>(str[6]) << 8)  |
           (static_cast<uint64_t>(str[7]));
}

int main() {
    constexpr uint64_t magic = make_magic("Magic123");
    std::cout << std::hex << magic << '\n';
    return 0;
}

Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • User mentioned (1): @Eljay's
  • Looks like a comment (1):
  • Low reputation (0.5):
Posted by: Shelton Liu