|
发表于 2019-11-12 16:30:59
|
显示全部楼层
本帖最后由 jackz007 于 2019-11-12 16:39 编辑
这没什么啊,这说明 浮点数 16 的二进制编码是 4 个字节: 00,00,128,65
这个说法可以在下面的代码中得到验证:
- #include <iostream>
- using namespace std ;
- union fd {
- float d ;
- unsigned char data[4] ;
- } speed ;
- int main()
- {
- speed . data[0] = 0 ;
- speed . data[1] = 0 ;
- speed . data[2] = 128 ;
- speed . data[3] = 65 ;
- cout << speed . d << endl ;
- return 0 ;
- }
复制代码
楼主应该深刻理解 C / C++ 语言的数据类型 union,就是不同类型的数据共享一块内存的意思,比如,本例中的 speed,总共占用 4 个字节,通过 speed . d 访问,它就是 4 个 unsigned char,通过 speed . d 访问,它就是 1 个 float,其实,访问的那 4 个字节都是同一个。 |
|