可以使用 std.format 库中的 format 函数和 toHexString 函数来实现:

import std.format;

void main()
{
    int i = 1;
    auto bytes = cast(ubyte[])(&i); // 获取i的内存地址,并将其强制转换为unsigned byte数组
    auto str = format('%02X %02X %02X %02X', bytes[0], bytes[1], bytes[2], bytes[3]); // 将每个byte格式化为2位16进制数,并用空格隔开
    writeln(str);
}

输出结果为:

01 00 00 00

其中,%02X 表示将一个 byte 格式化为 2 位 16 进制数,不足两位时在前面补 0。cast(ubyte[])(&i) 用于将指向 i 的指针转换为 unsigned byte 数组,这样就可以直接访问 i 在内存中的二进制表示形式了。

D语言打印变量或字面量内存二进制表示

原文地址: https://www.cveoy.top/t/topic/oxef 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录