Created
February 1, 2026 11:19
-
-
Save dev-brutus/824e159decc8ee094f6415256eaf05ef to your computer and use it in GitHub Desktop.
Вывод бинарного представления float чисел
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| pub fn float32_to_bits_transmute(f: f32) -> [String; 2] { | |
| // Прямое преобразование битового представления | |
| let bits: u32 = f.to_bits(); | |
| // Создаем заголовок с рамками | |
| let header = format!( | |
| "{} ┌{:─^6}┐ ┌{:─^21}┐", | |
| "S", "EXP", "MANT" | |
| ); | |
| // Форматируем биты | |
| let bits_str = format!( | |
| "{} {:08b} {:023b}", | |
| (bits >> 31) & 1, | |
| (bits >> 23) & 0xFF, | |
| bits & 0x7FFFFF | |
| ); | |
| [header, bits_str] | |
| } | |
| fn main() { | |
| let test_values = [ | |
| 0.5_f32, | |
| 1.5_f32, | |
| 1_f32 / 3_f32, | |
| (1_f32 / 3_f32) + 1.0, | |
| 1_f32 / 5_f32, | |
| 0.0_f32, | |
| -0.0_f32, | |
| 1.0_f32, | |
| -1.0_f32, | |
| 3.1415927_f32, | |
| f32::INFINITY, | |
| f32::NEG_INFINITY, | |
| f32::NAN, | |
| ]; | |
| println!("Бинарное представление:"); | |
| println!("{}", "-".repeat(46)); | |
| for &value in &test_values { | |
| let result = float32_to_bits_transmute(value); | |
| println!("f32: {:>15}", value); | |
| println!("Заголовок: {}", result[0]); | |
| println!("Биты: {}", result[1]); | |
| println!(); | |
| } | |
| } |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Вывод: