|
发表于 2015-1-15 17:53:30
|
显示全部楼层
本帖最后由 xf331785508 于 2015-1-15 18:08 编辑
- union Data
- {
- double srcData;
- u8 memData[sizeof(srcData)];
- };
- double am = 1010.0f;
- union Data d;
- void fun(void)
- {
- unsigned char table[sizeof(am)] = {0}, i = 0, *p = NULL;
- p = (unsigned char*)&am;
- for( i = 0; i < COUNTOF(table); i++ ){
- table[i] = *(p + i);
- printf("table %u value is %u\r\n", i, table[i]);
- }
- d.srcData = am;
- printf("%u \r\n", d.memData[0]);
- MemToFlash(d.memData, sizeof(d));
- sendData((u8*)d.memData, sizeof(d)); // <==> sendData((unsigned char*)&am, sizeof(am));
- }
- //你的代码改一下也是等效的
- double a = 1010.001;
- unsinged char txdata[sizeof(a)] = {0};
- void func(void)
- {
- unsigned long data = 0;
- a=1010.0f; //10进制
- data = *((unsigned long*)&a);
- txdata[0] = (data >> 56) & 0xff;
- txdata[1] = (data >> 48) & 0xff;
- txdata[2] = (data >> 40) & 0xff;
- txdata[3] = (data >> 32) & 0xff;
- txdata[4] = (data >> 24) & 0xff;
- txdata[5] = (data >> 16) & 0xff;
- txdata[6] = (data >> 8) & 0xff;
- txdata[7] = a & 0xff; //发送代码
- }
复制代码 |
|