|
|
发表于 2020-9-29 09:49:05
|
显示全部楼层
你的temp是个什么类型?不会是int吧?int只有4字节,怎么存放八字节内容?buf是什么?char数组?char只有8位,怎么左移这么多位?昨天没有仔细看你的这些变量的类型。。。。
还是直接用联合体吧、直接看我写的那个例程,把多余的内容删掉就可以了
我帮你删除了一下,你可以根据自己需求,再改改
- #include <stdio.h>
- union Data{
- float a;
- char c[4];
- };
- union Num{
- double lf;
- unsigned char ch[8];
- };
- int main()
- {
- union Data aaa;
- char buf[4]={0x72, 0xF9, 0x31, 0x41};
- int i=0;
- printf("float类型的数据存储,占4个字节,正在读取四个字节……\n");
- for(i=0;i<4;i++)
- aaa.c[i]=buf[i];
- printf("float类型的数据存储,占4个字节。a=%f\n",aaa.a);
-
- union Num num;
- unsigned char buf1[8]={0xC7, 0x72, 0x6E, 0xBA, 0x35, 0x3F, 0x26, 0x40};
- printf("\ndouble类型的数据存储,占8个字节,正在读取八个字节……\n");
- for(i=0;i<8;i++)
- num.ch[i]=buf1[i];
- printf("double类型的数据存储,占8个字节,num=%lf\n",num.lf);
- return 0;
- }
复制代码 |
|