Logo

Programming-Idioms

This language bar is your friend. Select your favorite languages!

Idiom #204 Return fraction and exponent of a real number

Given a real number a, print the fractional part and the exponent of the internal representation of that number. For 3.14, this should print (approximately)

0.785 2

#include <math.h>
#include <stdio.h>
  double d = 3.14;
  double res;
  int e;

  res = frexp(d, &e);
  printf("%f %d\n",res,e);
using System;
static void Frexp(double value, out double mantissa, out int exponent)
{
    var bits = BitConverter.DoubleToInt64Bits(value);
    var negative = (bits & (1L << 63)) != 0;
    exponent = (int)((bits >> 52) & 0x7FFL);
         Console.WriteLine("nt2: " + exponent);
    var mantissaLong = bits & 0xFFFFFFFFFFFFFL;

    if (exponent == 0)
    {
        exponent++;
    }
    else
    {
        mantissaLong |= 1L << 52;
    }

    exponent -= 1075;

    if (mantissaLong == 0)
    {
        mantissa = 

New implementation...
< >
tkoenig