【发布时间】:2016-05-07 07:54:22
【问题描述】:
我一直在尝试使用 C++ 读取 STL 文件中的二进制数据。我在网上找到了一些方法,其中包括一个我无法理解的过程:
char f1[4] = { facet[0],facet[1],facet[2],facet[3] };
float xx = *((float*)f1);
我知道每个 char 都可以通过它们的 ASCII 数字转换为 int,但我不知道 char 数组如何转换成一个int:
char foo[3] = { 'a','b','c' };
int x = (int)foo;
/*x is now 6513249*/
/*And the char[] can be converted into float as well*/
这种转换背后的原因是什么?是什么让 char[] 成为特定的 int 或 float?
【问题讨论】:
-
就转换而言,我认为第一个是将一系列 4 个字符 值 解释为单个浮点数(假设
float是 4 个字节),第二个一,我相信只是将指针值(从数组名称衰减到指针)转换为整数。
标签: c++