如何将float 型数据转换为unsigned char 型
5个回答
2015-05-23 · 知道合伙人互联网行家
关注
展开全部
char)*)pf+i)=*(px+i);
//转换float数据到字节数组
unsigned char i;
float floatVariable;
unsigned char charArray[4];
(unsigned char) *
pdata
= ((unsigned char)*)&floatVariable; //把float类型的指针强制转换为unsigned char型
for(
i
=
0
;i
<
4
;i++)
{
charArray[i] = *pdata++;//把相应地址中的数据保存到unsigned char数组中
}
//转换字节数组到float数据
float floatVariable;
unsigned char i;
void *pf;
pf
= &floatVariable;
(unsigned char) *
px
=
charArray
;
for(
i
=
0
;i
<
4
;i++)
{
*(((unsigned
}
展开全部
数据类型转换一般不应该大转小,哪里有大转小的。如果你非要转换成字符类型,必须用字符类型数组了。至于方法,我琢磨着会很多。随便给你写个思路。
unsigned char valuetemp[];
float a = 1.25; //假设此a后面的位数不知。
int b =0;
int step = 1;
b = a*10^6; //强转,且最后一位必定为0
for( int i =0,;i<8;i++)
{
valuetemp[count++] = b || (~(b<<<step++)) ;
}
//因为float最多只能有7位有效数字,所以咱们统一给这个a乘以10^6 存入b;
你看着办吧。或许你问的问题没这么复杂,我想到的是单片机按位操作。
unsigned char valuetemp[];
float a = 1.25; //假设此a后面的位数不知。
int b =0;
int step = 1;
b = a*10^6; //强转,且最后一位必定为0
for( int i =0,;i<8;i++)
{
valuetemp[count++] = b || (~(b<<<step++)) ;
}
//因为float最多只能有7位有效数字,所以咱们统一给这个a乘以10^6 存入b;
你看着办吧。或许你问的问题没这么复杂,我想到的是单片机按位操作。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接赋值就成.
但是你自己应该清楚, unsigned char只有一字节, 这样转换是会丢掉精度的.
但是你自己应该清楚, unsigned char只有一字节, 这样转换是会丢掉精度的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这需要强制转换 unsigned char a=(unsigned char)b
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
强制类型转换
float b;
unsigned char a=(unsigned char)b;
float b;
unsigned char a=(unsigned char)b;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询