View the format of IEEE 754 floating point numbers source code

#include <iostream>
#include <basetsd.h>
#include <iomanip>
#include <cstdlib>
using namespace std;
 
union FloatNum //Here the tag name (FloatNum) is redundant.
 {
   float fx;//4 bytes variable
   long  lx;//4 bytes variable
 }fn;
 
union DoubleNum
 {
   double dx;  //8 bytes variable
   LONG64 lx;  //8 bytes variable
 }dn;
 
union LongDoubleNum
 {
   long double dx;  //12 bytes variable
   long  lx[3]; // 3 * 4 bytes variable
 }ldn;
 
int main()
{
    fn.fx = -118.6253433; //variable assignment declaration statement
    //show size of float
    cout << "\nsize of float = " << dec << sizeof(fn.fx) << endl;
    cout << setprecision(10) << fn.fx << " = 0x" << hex << fn.lx << endl;
 
    dn.dx =  112.6255678;  //assign value to a variable
    //show size of double
    cout << "\nsize of double = " << dec << sizeof(dn.dx) << endl;
    cout << dn.dx <<"  = 0x" << hex << dn.lx << endl;
 
    ldn.dx = -12.61256125;  //assign value to a variable
    //show size of long double
    cout << "\nsize of long double = " << dec << sizeof(ldn.dx) << endl;
    cout << setprecision(10) << ldn.dx << " = 0x" << hex << ldn.lx[2] << ldn.lx[1] << ldn.lx[0] << endl;
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值