- 主题:请教用union转换float 和 unsigned char 的问题
typedef union {
float df;
unsigned char uc4[4];
}fuc4;
调试过程中float 在处理0的时候出现了一个问题 有一个0可能有负号
比如 fuc4 t1= (A+B)/C; fuc4 t2= -(A-B)/C;
t1 和 t2都0的时候 t2的第4个字节为0x80输出为128 而实际中要直接用这个字节数据
请教下怎么避免这种问题
--
修改:scanworld FROM 106.39.0.*
FROM 106.39.0.*
给df加个0.0
【 在 scanworld (臭蛋超人) 的大作中提到: 】
: typedef union {
: float df;
: unsigned char uc4[4];
: ...................
--
FROM 222.128.5.*
哈哈哈 太棒了 这是什么原因 之前是变成double了吗
【 在 gameplayer 的大作中提到: 】
: 给df加个0.0
:
--
FROM 106.39.0.*
float/double 中的0 本身就区分正负,很多地方都有体现,
比如 1/(-0.0f) 和 1/(0.0f),结果分别是负无穷和正无穷(这也是 float/double的中合法数据)
【 在 scanworld 的大作中提到: 】
: 哈哈哈 太棒了 这是什么原因 之前是变成double了吗
:
--
FROM 61.149.161.*
感谢分享
【 在 imzhdb 的大作中提到: 】
: float/double 中的0 本身就区分正负,很多地方都有体现,
: 比如 1/(-0.0f) 和 1/(0.0f),结果分别是负无穷和正无穷(这也是 float/double的中合法数据)
:
--
FROM 106.39.0.*