V mé aplikaci na AVR bych potřeboval vynásobit float a 16-bit číslo s pevnou čárkou ve tvaru 1.15. Moje úvaha byla následující: Pevně čísla vynásobím, tak jak jsou a poté ve výsledném floatu snížím exponent o 15. Snížení exponentu jsem chtěl provést pomocí dělení mocninou 2 - předpokládál jsem, že tato operace je optimalizována na pouhé snížení exponentu - není. Provádí se kompletní dělení, které trvá zbytečně dlouho.
Je nějaký "košer" způsob jak efektivně snížit exponent u float? Nebo musím jít do interní struktury, exponent vyčíst a zase nastavit? Popř. je nějaký jiný způsob jak výše zmíněná čísla vynásobit?