如何将float 型数据转换为unsigned char 型

2025-03-13 17:15:21
推荐回答(5个)
回答1:

  1. 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
    }

回答2:

数据类型转换一般不应该大转小,哪里有大转小的。如果你非要转换成字符类型,必须用字符类型数组了。至于方法,我琢磨着会很多。随便给你写个思路。
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<<}
//因为float最多只能有7位有效数字,所以咱们统一给这个a乘以10^6 存入b;

你看着办吧。或许你问的问题没这么复杂,我想到的是单片机按位操作。

回答3:

直接赋值就成.
但是你自己应该清楚, unsigned char只有一字节, 这样转换是会丢掉精度的.

回答4:

这需要强制转换 unsigned char a=(unsigned char)b

回答5:

强制类型转换
float b;
unsigned char a=(unsigned char)b;