Hat’s IEEE
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 475 Accepted Submission(s): 211
Problem Description
Your program will be given floating point numbers (32-bit), and calculate
exponent and fraction.
IEEE 754:
SEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFF
S = sign(1)
E = exponent(8)
F = fraction(23)
NOTE: If you donnot know IEEE 754,you can baidu it:)
exponent and fraction.
IEEE 754:
SEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFF
S = sign(1)
E = exponent(8)
F = fraction(23)
NOTE: If you donnot know IEEE 754,you can baidu it:)
Input
Each line contains a numbers.
Output
For each case, output a line containing two numbers, e (exponent) and f (fraction), by a single space. Fraction must be rounded to six digits after the decimal point.
Sample Input
6560.91 -6560.91
Sample Output
12 1.601785 12 -1.601785 NOTE: INTEL CPU
Author
戴帽子的
Source
注:只要理解IEEE754原理即可AC,不是很难
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main(){
float a;
while( ~scanf("%f",&a) ){
int cnt = 0;
while( fabs(a) >= 2.0 ){
a /= 2.0;
cnt++;
}
while( fabs(a) < 1.0 ){
a *= 2.0;
cnt--;
}
printf("%d %.6lf\n",cnt,a);
}
return 0;
}