c - 这个C函数是做什么的?

标签 c function

我知道它将接受一个数字并返回一个字符。我理解每一行代码在做什么,但我无法真正以有意义的方式表达它总体上在做什么。有什么想法吗?

int function(uint64_t P1) {
    uint64_t L1 = P1;
    uint32_t L2 = 1;

    while (L1 > 15) {
        L2 = (uint64_t)L2 << 4;
        L1 = L1 >> 4;
    }
    uint32_t L3 = 0;

    while (L2 != 0) {
        L1 = P1;
        uint32_t L4 = 0;

        L4 = L1 % L2;
        uint64_t L5 = (uint64_t)L4;
        sub_function(L1 / L2);
        L3++;
        P1 = L5;
        L2 = (uint64_t)L2 >> 4;
    }
    L1 = L3;

    return L1;
}

void sub_function(uint64_t P1) {
    if (P1 <= 9) {
        printf("%c", P1 + 48);
    } else {
        printf("%c", P1 + 55);
    }
}

最佳答案

此代码接受十进制值并打印十六进制表示形式。

Try it out yourself

在 C 中,我们可以使用 %x (%X) 格式说明符标志来 printf 来为我们做到这一点:

printf("%X", 16); // 10
printf("\n");
printf("%X", 42); // 2A

如果您使用的是 C++ 编译器,我们可以使用 std::hex iostream 上的流操作标志可实现相同的结果:

std::cout << std::hex << 16 << std::endl; // 10
std::cout << std::hex << 42 << std::endl; // 2a

关于c - 这个C函数是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40889041/

相关文章:

c - `sudo` 从 C 以 root 权限连接到 wifi

c - 实现AI指针错误

c - C 中可以安全递归吗?

javascript - Twitter Bootstrap Modal 远程功能无法正常工作

c - 链表值被改变

c - While 循环按引用传递字符数组

c++ - 如果我使用此功能,我的控制台会崩溃

function - 为什么一个 Func 有效而另一个(几乎相同)无效

python - 从python文件中提取函数并将它们写入其他文件

ios - Swift 早期函数​​在没有防护的情况下退出 Swift