#include "c_float.h" #include #include static void c_Double_print(c_Double_t value) { uint64_t sign = value.sign; uint64_t exponent = value.exponent; uint64_t fraction = value.mantissa; printf("数值: %.15f\n", value.d); printf("整体十六进制: 0x%016llX\n", (unsigned long long)value.u); printf("符号位 (Sign): %llu (%s)\n", (unsigned long long)sign, sign ? "负" : "正"); printf("指数位 (Exponent 原始值): %llu (实际 2 阶: %d)\n", (unsigned long long)exponent, (int)exponent - 1023); printf("尾数位 (Fraction 16进制): 0x%013llX\n", (unsigned long long)fraction); printf("---------------------------------------\n"); } int main(int argc, char** argv){ c_Double_t d={.d=1.0f}; c_Double_print(d); return 0; }