第1个回答 2012-11-07
数据类型转换一般不应该大转小,哪里有大转小的。如果你非要转换成字符类型,必须用字符类型数组了。至于方法,我琢磨着会很多。随便给你写个思路。
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;
你看着办吧。或许你问的问题没这么复杂,我想到的是单片机按位操作。本回答被网友采纳
第2个回答 2012-11-07
直接赋值就成.
但是你自己应该清楚, unsigned char只有一字节, 这样转换是会丢掉精度的.
第3个回答 2012-11-07
这需要强制转换 unsigned char a=(unsigned char)b本回答被提问者采纳
第4个回答 2012-11-07
强制类型转换
float b;
unsigned char a=(unsigned char)b;