本文介绍如何查看C++基本数据类型的二进制位串,及用二进制串生成任意基本类型数据。
C++中的基本数据类型
- char
- bool
- short
- int
- unsigned
- long
- float
- double
- long long
- void *
有些编译平台甚至包含 long double,主流的基本数据类型最长不超过64比特位。
任意基本类型转化为比特串
布尔运算和移位操作只能用于整型类数据,这与硬件有关,其实浮点型的移位操作没有意义。如果我们想查看某个浮点型数据的二进制位图,采用普通的移位和求与是无法编译的。我们知道任何数据,首先存放在内存中的某几个连续单元,至于我们所理解的数据类型不过是对二进制位图的不同解释。所以我们可以通过把某个数据强制转化为整型,从而查看位图。注意这里的强转不是C/C++中的类型转换,而是解释方式转换,即通过指针把二进制位图解释成想要的基本数据类型。
代码如下:
typedef unsigned long long ULL;
template <typename T>