国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

c++ - the average of two float point numbers without operator/?
巴扎黑
巴扎黑 2017-07-03 11:41:47
0
2
1195

Like the title, integers can use bit operations, how to solve floating point numbers? Due to the word limit of the title, the original text is how to calculate the average of two float point numbers without operator / ?

巴扎黑
巴扎黑

reply all(2)
代言

Thanks for the invitation.

float x = 1.1;
float y = 1.2;
int * xx = (int*)&x;
int * yy = (int*)&y;
int k = (*xx + *yy) >> 1;
float * kk = (float*)&k;
cout << *kk << endl; // 1.15 ,結(jié)果正確

I used double at first, but the output overflowed. I suddenly thought that on my computer (most computers) double is 8 bytes, and int is only 4 bytes, so just change double to float.

There are no difficulties in the code. The only one I guess is the conversion of integers and floating point numbers in binary. You will know this part if you have studied computer composition, IEEE floating point representation.

代言

average = (a + b) * 0.5;

Off topic,
I feel like this question is actually not a programming question, it should be a brain teaser~

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template