c++浮点数的处理
#include <stdio.h>
#include <iostream>
#include <bitset>
using namespace std;
int main()
{
bitset<32> a(100);
cout << a << endl;
double t = 15.9375;
//double占8个字节.&t则是指向double型的指针(指向8个字节的第一个字节)
char* low = (char*)&t;
//char占1个字节,char *low指向char型变量的第一个字节,也是唯一一个字节.
//&t本来是表示8个字节的double的指针.但被强制转换成表示1个字节的char指针.指向double t的第一个字节.
char* high = (char*)(&t+1)-1;
//(&t+1) &t还没被强制转换,所以&t + 1 表示指向double t 后的8个字节.
//(char *)(&t+1)强转后,指向 &t+1表示double t 后的的第1个字节.
char* cp = high;
while(cp >= low)//从高字节到低字节,每个字节一组
{
bitset<8> bs(*cp);
cout << bs << " ";
cp--;
}
cout << endl;
}