设为首页 加入收藏

TOP

c语言,有时莫名,有时奇妙----小话c语言(25) (四)
2014-11-23 23:39:54 来源: 作者: 【 】 浏览:47
Tags:语言 有时 莫名 奇妙 ---- 小话

unsigned int exp : 8; // middle bits
unsigned int sign : 1; // highest bit
}float_bit;
}float_value;
一个简单的测试代码:


[cpp]
#include

#define PRINT_D(intValue) printf(#intValue" is %d\n", (intValue));
#define PRINT_F(floatValue) printf(#floatValue" is %f\n", (floatValue));

// IEEE 754 single floating number's format(intel little-endian mode)
typedef union
{
// float value
float f;

// intel bits mode that stands for float value
struct
{
unsigned int dot : 23; // low bits
unsigned int exp : 8; // middle bits
unsigned int sign : 1; // highest bit
}float_bit;
}float_value;


int main(int argc, char **argv)
{
float_value fv;
fv.float_bit.sign = 1;
fv.float_bit.exp = 128;
fv.float_bit.dot = 0;

PRINT_F(fv.f);

return 0;
}

#include

#define PRINT_D(intValue) printf(#intValue" is %d\n", (intValue));
#define PRINT_F(floatValue) printf(#floatValue" is %f\n", (floatValue));

// IEEE 754 single floating number's format(intel little-endian mode)
typedef union
{
// float value
float f;

// intel bits mode that stands for float value
struct
{
unsigned int dot : 23; // low bits
unsigned int exp : 8; // middle bits
unsigned int sign : 1; // highest bit
}float_bit;
}float_value;


int main(int argc, char **argv)
{
float_value fv;
fv.float_bit.sign = 1;
fv.float_bit.exp = 128;
fv.float_bit.dot = 0;

PRINT_F(fv.f);

return 0;
}
输出:


[plain]
fv.f is -2.000000


首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇[面试]字符串专题 下一篇 C语言的一些特殊用法(#define)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: