【发布时间】:2012-09-06 00:28:31
【问题描述】:
我有一个unsigned char*。通常这指向一块数据,但在某些情况下,指针是数据,即。将 int 值转换为 unsigned char* 指针 (unsigned char* intData = (unsigned char*)myInteger;),反之亦然。
但是,我需要使用 float 值执行此操作,并且它不断给我转换错误。
unsigned char* data;
float myFloat = (float)data;
我该怎么做?
【问题讨论】:
-
你不能,至少不容易。如果没有一些神奇的技巧,这将永远不会包含有效信息,除非输入是正确的 IEEE 格式。
-
@RichardJ.RossIII 除非你知道一些我不知道的鬼鬼祟祟的东西(考虑到这是 C++,这不太可能)你可以很容易地做到这一点。
-
您的平台上的
sizeof(unsigned char *)是否等于sizeof(float)?如果没有,您希望这会做什么,究竟是什么? (不要介意一般行为的可怕不确定性......)
标签: c++ type-conversion