Sli*_*ack 34 floating-point binary
任何人都可以告诉我如何将这个浮点数转换为12.25到二进制?我知道如何转换"12"而不是0.25
任何帮助深表感谢.谢谢
小智 24
将小数点后的数字乘以2,直到它变为1.0:
0.25*2 = 0.50
0.50*2 = 1.00
Run Code Online (Sandbox Code Playgroud)
结果是相反的顺序是.01
Gov*_*bhu 22
考虑下面的例子
我们将分别考虑整数和小数部分.
The integral part is easy, 2 = 10.
Run Code Online (Sandbox Code Playgroud)
对于小数部分:
0.625 × 2 = 1.25 1 Generate 1 and continue with the rest.
0.25 × 2 = 0.5 0 Generate 0 and continue.
0.5 × 2 = 1.0 1 Generate 1 and nothing remains.
Run Code Online (Sandbox Code Playgroud)
因此0.625 = 0.101,并且2.625 = 10.101.
有关更多信息,请参阅此链接.
com*_*nad 14
(d表示十进制,b表示二进制)
小智 5
浮点值以 IEEE 754 格式存储,因此我们不能像整数、字符那样直接将其转换为二进制。
但是我们可以通过指针将浮点数转换为二进制数。
#include <stdio.h>
int main()
{
float a = 7.5;
int i;
int * p;
p = &a;
for (i = sizeof(int) * 8 - 1; i >= 0; i--)
{
printf("%d", (*p) >> i & 1);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出
0 10000001 11100000000000000000000
Run Code Online (Sandbox Code Playgroud)
为澄清而添加的空格,它们不包含在程序中。
| 归档时间: |
|
| 查看次数: |
110183 次 |
| 最近记录: |