From 048033b68c6e9cac65bd47eb780cd88c9b4720dc Mon Sep 17 00:00:00 2001 From: Trevor Spiteri Date: Sun, 12 Aug 2018 11:52:48 +0200 Subject: [PATCH] fix to_f32 and to_f64 for no fractional or no integer bits --- src/lib.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index b066149..03805b8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -208,7 +208,13 @@ macro_rules! to_f { let (int_bits, frac_bits) = (Self::int_bits(), Self::frac_bits()); let (neg, int, frac) = self.parts(); - let int_frac = (int << frac_bits) | (frac >> int_bits); + let int_frac = if frac_bits == 0 { + int + } else if int_bits == 0 { + frac + } else { + (int << frac_bits) | (frac >> int_bits) + }; let leading_zeros = int_frac.leading_zeros(); let signif_bits = int_bits + frac_bits - leading_zeros; if signif_bits == 0 {