• 买电竞比赛的APP:浮点数到十六进制,实用!!!

    2021-03-09

    浮点数十六进制转换函数如下:

    / *功能:浮点数---转-十六进制* /

    union fnum

    {

    long int m;

    f浮动;

    };

    然后,您需要在引用的函数中声明联合,例如:

    union fnum num;

    用法:联合将与一个地址共享多个成员变量,并且一次只能分配一个成员变量。修改成员变量后,其他成员会立即更改,

    例如:num.f = 6. 91;然后num.m = 0x40DD1EB8;

    当num.f = 6. 0时,另一个成员变量也会更改num.m = 40C00000

    因为可以直接计算单片机的十进制和十六进制,所以上述方法可以实现浮点数到十六进制的转换。

    用外行的话来说:联合就像一个容器,成员变量是不同形状的容器出口。当我们放入一个圆形物体时,如果此时我们想要一个正方形物体,则从正方形开始。如果您从出口处取出物体,您将得到一个正方形形状(就像制作蛋糕时一样,挤压奶油) ,有五角星形/三角形/大/小出口模具。您想得到任何形状的奶油。出口模具)

    同样,如果要将浮点数转换为十六进制,则将浮点数放入并集(num.f = 6. 9 1),然后将其从整数中取出(Rec = num.m )

    通过这种方式,浮点数被转换为十六进制数并存储在变量Rec

    这里的Rec是我定义的32位变量。只要是32位的,它也可以称为猫或狗。

    详细问题:

    由于浮点数被转换为十六进制,因此它们通常是32位数据,因此当我们取出整数时,我们需要使用32位变量(long int或u32)来保存整数。

    / * -------------------您可以忽略以下内容------------------- * /

    2.联合与结构之间的区别

    联盟和结构具有以下差异:

    1.联合和结构由不同数据类型的多个成员组成浮点数转十六进制

    但是在任何时候,联合只存储一个选定的成员,并且结构的所有成员都存在。

    2.为联盟的不同成员分配值将覆盖其他成员,并且原始成员的值将不再存在,

    结构的不同成员的分配不会相互影响。另一件事要注意的是,

    下面是对接收浮点数的串口的说明

    计算串口接收的浮点数:

    当我们通常收到串行端口号时,它们基本上是文本类型的数字,并且是逐位数字的文本,

    例如九州体育官网 ,6. 19是“ 6”,“。”,“ 1”,“ 9”

    我们需要做一些事情以将其更改回6. 19:

    Arr [] = {'6','。','1','9'}

    1.所有文本类型编号只能在减去零后计算,否则为文本类型。

    Arr [0]-“ 0”;

    2.特别注意

    sum_num =(float)(arr [6]-'0')+

    (float)(arr [8]-'0')/ 10 +(float)(arr [9]-'0')/ 100;

    计算时,应将小数部分转换为小数,然后再加上

    请注意,当(float)(arr [8]-'0')/ 10时亚博视讯App ,必须强制将前部替换为/ 10之前的(float),以使1变为(k11] 1,

    如果/ 10之前没有(浮点数),则表示10的倍数,

    如果为1/10浮点数转十六进制,则不加(浮点数),它等于0;否则为0。最终加法等于6. 00000;

    正确如下:

    3.注意细节:

    成功将Arr [] = {'6','。','1','9'}

    在组合sum_num = 6. 19后,在判断sum_num时:

    if(sum_num == 6 2. 91f){LED1 = 0; }

    请注意bet体育皇冠 ,在f之后添加了6 2. 91,否则将报告警告:

    :单精度操作数到双精度的隐式转换

    当if(sum_num == 6 2. 9 1) {LED1 = 0;}

    此处的sum_num是浮点类型,默认情况下6 2. 91是双精度类型;

    当两个不同类型的变量相加和相减时,两个变量都将转换为较大的类型,

    因此,当判断浮点数和双精度时:浮点数将转换为双精度。因此,将报告警告,告诉您此处已执行了此操作。

    当if(sum_num == 6 2. 91f){LED1 = 0; }这里6 2. 91f

    将6 2. 91转换为浮点数

    浮点数和浮点数是经过判断或计算的,不会转换为双精度,因此警告自然消失了