Dan*_*der 2 c++ floating-point integer
我想将浮点用户输入转换为等效的整数.我可以通过接受一个输入字符串来做到这一点,比如说"-1.234"然后我可以显式地将每个字符转换为它的十进制表示.(顺便说一下大端).所以我只想说我给的例子,
-1.234 = 1|01111111|00111011111001110110110
sign bit = 1 = 128<<31
exponent bits = 01111111 = 127<<23
mantissa bits = 00111011111001110110110 = 1962934
decimal equivalent = 1962934 + 127<<23 + 128<<31
Run Code Online (Sandbox Code Playgroud)
这很容易但不实用.有一个更好的方法吗?也许我会做某种类型的铸造?
联合允许您以不同类型访问同一块内存
union floatint
{
float f;
int i;
}
floatint fi;
fi.f=-1.234;
int i=fi.i;
Run Code Online (Sandbox Code Playgroud)
警告:由于大小和调整,你可以进入奇怪的平台差异和类似的东西,但是由于你已经通过尝试将float解释为int来做出一些假设,你可能能够逃脱它.阅读更多关于工会的信息,我认为这就是你想要的.
| 归档时间: |
|
| 查看次数: |
3081 次 |
| 最近记录: |