High Word

Return an unsigned 32-bit integer corresponding to the more significant 32 bits of a double-precision floating-point number.

Usage

var getHighWord = require( '@stdlib/number/float64/base/get-high-word' );

getHighWord( x )

Returns an unsigned 32-bit integer corresponding to the more significant 32 bits of a double-precision floating-point number.

var w = getHighWord( 3.14e201 ); // => 01101001110001001000001011000011
// returns 1774486211

Examples

var floor = require( '@stdlib/math/base/special/floor' );
var randu = require( '@stdlib/random/base/randu' );
var pow = require( '@stdlib/math/base/special/pow' );
var getHighWord = require( '@stdlib/number/float64/base/get-high-word' );

var frac;
var exp;
var w;
var x;
var i;

for ( i = 0; i < 100; i++ ) {
    frac = randu() * 10.0;
    exp = -floor( randu()*324.0 );
    x = frac * pow( 10.0, exp );
    w = getHighWord( x );
    console.log( 'x: %d. high word: %d.', x, w );
}

C APIs

Usage

#include "stdlib/number/float64/base/get_high_word.h"

stdlib_base_float64_get_high_word( x, *high )

Extracts the unsigned 32-bit integer corresponding to the more significant 32 bits of a double-precision floating-point number.

#include <stdint.h>

uint32_t high;
stdlib_base_float64_get_high_word( 3.14, &high );

The function accepts the following arguments:

  • x: [in] double input value.
  • high: [out] uint32_t* destination for higher order word.
void stdlib_base_float64_get_high_word( const double x, uint32_t *high );

Examples

#include "stdlib/number/float64/base/get_high_word.h"
#include <stdint.h>
#include <stdio.h>

int main() {
    double x[] = { 3.14, -3.14, 0.0, 0.0/0.0 };

    uint32_t high;
    int i;
    for ( i = 0; i < 4; i++ ) {
        stdlib_base_float64_get_high_word( x[ i ], &high );
        printf( "%lf => high: %u\n", x[ i ], high );
    }
}
Did you find this page helpful?