;问题:C语言不允许使用位变量来访问浮点数据类型的二进制位,请看一下代码:
union flm
{
float mf;
long ml;
};
bdata struct bady
{
char ml;
union flm ex;
}try;
sbit tryf31 = try.ex.ml ^ 31;
sbit trym10 = try.ml ^ 0;
sbit trym17 = try.ml ^ 7;
;处理方法:通过将浮点数和长整数构造一个联合(两者均为32位),后用位变量来访问联合中长整型的位,由于float和long在union中占用了相同的存储空间,也就访问了浮点数的对应位。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』
热门文章
更多