在C++中如何得到浮点数的二进制表示形式
(2016-06-07 15:23:24)
标签:
float_to_binarybitsetunion |
分类: C_Plus_Plus |
在C++中我们可以直接对整形数据进行位操作,例如左移,右移,按位与,按位或等操作,但是如何对浮点形式的数据进行位操作呢?要想对浮点类型的数据进行位操作首先需要得到其二进制表示形式,以下介绍三种方式来得到一个浮点数的二进制表示形式。
浮点数在机器中的表示参考:http://blog.sina.com.cn/s/blog_a2a6dd380102vai9.html.
注:以下代码均在编译器Dev-C++ 5.6.1上编译通过。
(1)使用reiniterpret_cast将float类型转换为int类型
(前提:float和int有同样大小的size)。
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include
{ } 运行结果如下: |
(2)利用union的特点来保存数据,得到浮点数的二进制表示形式。
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#include
{ } { } 运行结果如下: |
(3)结合union和bitset来进行操作,得到浮点数的二进制表示形式
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#include
{ } |
参考资料: