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( void ) {
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 );
}
}