HDU1265 浮点转换

原文引用https://www.dazhuanlan.com/2019/08/25/5d622bd96eb30/


原题链接

http://icpc.njust.edu.cn/Problem/Hdu/1265/

Description

将实s数转换为IEEE单精度浮点数表示。

img

Input

先输入一个数N(1<=N<=150),表示实例个数;其后是N个实数。

Output

输出IEEE浮点表示,字母大写。

Sample Input

1
2
3
2
23.85
-23.85

Sample Output

1
2
41BECCCD
C1BECCCD

Analysis

一个巧妙的办法,将浮点数的4个字节32位的内存空间copy给整数ans,

然后以16进制的方式打印整数ans 即可;

变量ans使用long或unsigned int,因为有32位,如果用int,32位有一位表示正负,只有31位可用,会不够。

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

#include<cstdio>
#include<cstring>

using namespace std;

int (){
long n,ans;
float f;
cin>>n;
while(n--){
cin>>f;
memcpy(&ans,&f,4);
printf("%lXn",ans);
}
return 0;
}

猜你喜欢

转载自www.cnblogs.com/petewell/p/11408059.html
今日推荐