Rumah > Soal Jawab > teks badan
Seperti tajuk, integer boleh menggunakan operasi bit, bagaimana untuk menyelesaikan nombor titik terapung Disebabkan had perkataan tajuk, teks asal ialah bagaimana untuk mengira purata dua nombor titik apungan tanpa operator /
?
代言2017-07-03 11:43:47
Terima kasih atas jemputan.
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 ,结果正确
Saya menggunakan dua kali ganda pada mulanya, tetapi outputnya melimpah tiba-tiba saya terfikir bahawa pada komputer saya (kebanyakan komputer) berganda ialah 8 bait, dan int hanya 4 bait, jadi hanya tukar dua kali kepada terapung.
Tiada kesukaran dalam kod Satu-satunya yang saya rasa ialah penukaran integer dan nombor titik terapung dalam binari Anda akan mengetahui bahagian ini jika anda telah mempelajari komposisi komputer, perwakilan titik terapung IEEE.
代言2017-07-03 11:43:47
average = (a + b) * 0.5;
Di luar topik,
Saya rasa soalan ini sebenarnya bukan soalan pengaturcaraan, ia sepatutnya menjadi pengusik otak~