我想知道是否有一种方法可以在 C++ 中使用 char 来表示 float ?
例如:
int main()
{
float test = 4.7567;
char result = charRepresentation(test);
return 0;
}
我读到可能使用 bitset 我可以做到,但我不太确定。
假设我的浮点变量是二进制的 01001010 01001010 01001010 01001010。
如果我想要一个包含 4 个元素的 char 数组,第一个元素将是 01001010,第二个:01001010 等等。
我可以在包含 4 个元素的字符数组中表示 float 变量吗?
最佳答案
我怀疑你想说的是:
int main()
{
float test = 4.7567;
char result[sizeof(float)];
memcpy(result, &test, sizeof(test));
/* now result is storing the float,
but you can treat it as an array of
arbitrary chars
for example:
*/
for (int n = 0; n < sizeof(float); ++n)
printf("%x", result[n]);
return 0;
}
编辑添加:所有指出您不能将 float
放入 8 位的人当然是正确的,但实际上 OP 正在摸索理解 float
,就像所有原子数据类型一样,最终是一个简单的连续字节 block 。这对所有新手来说都不是显而易见的。
关于c++ - C++ 中的 float 到二进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2746380/