有个48bit的数据要拆分成6个BYTE输出.想用共用体实现,程序如下:
union double_or_char
{
double f;
unsigned char c[8];
} temp;
temp.f=0x53A06D3A06D3;
for(i=0;i<8;i++)
{
if(temp.c[i]/16>9) UART_putchar(temp.c[i]/16+0x37); else UART_putchar(temp.c[i]/16+0x30);
if(temp.c[i]%16>9) UART_putchar(temp.c[i]%16+0x37); else UART_putchar(temp.c[i]%16+0x30);
}
结果输出的是DA40A75619785DA4
double的存储结构是不是八个连续的BYTE啊? 如果不是,有什么好办法实现48bit数据的运算和输出吗?