toWord
Return an unsigned 32-bit integer corresponding to the IEEE 754 binary representation of a single-precision floating-point number.
Usage
var toWordf = require( '@stdlib/number/float32/base/to-word' );
toWordf( x )
Returns an unsigned 32-bit integer
corresponding to the IEEE 754 binary representation of a single-precision floating-point number.
var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' );
var f32 = float64ToFloat32( 1.337 );
// returns 1.3370000123977661
var w = toWordf( f32 ); // => 0 01111111 01010110010001011010001
// returns 1068180177
Notes
The equivalent of this function in C/C++,
unsigned int toWordf(float x) { return *(unsigned int*)&x; }
Examples
var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' );
var randu = require( '@stdlib/random/base/randu' );
var toWordf = require( '@stdlib/number/float32/base/to-word' );
var word;
var f64;
var f32;
var i;
// Convert single-precision floating-point numbers to integers representing the binary literal...
for ( i = 0; i < 1000; i++ ) {
f64 = (randu()*100.0) - 50.0;
f32 = float64ToFloat32( f64 );
word = toWordf( f32 );
console.log( 'float64: %d => float32: %d => word: %d', f64, f32, word );
}
C APIs
Usage
#include "stdlib/number/float32/base/to_word.h"
stdlib_base_float32_to_word( x, *word )
Converts a single-precision floating-point number to an unsigned 32-bit integer corresponding to the number's IEEE 754 binary representation.
#include <stdint.h>
uint32_t word;
stdlib_base_float32_to_word( 3.14f, &word );
The function accepts the following arguments:
- x:
[in] float
input value. - word:
[out] uint32_t*
destination.
void stdlib_base_float32_to_word( const float x, uint32_t *word );
stdlib_base_float32_word_t
An opaque type definition for a union for converting between a single-precision floating-point number and an unsigned 32-bit integer.
#include <stdint.h>
stdlib_base_float32_word_t w;
// Assign a single-precision floating-point number:
w.value = 3.14f;
// Retrieve the word:
uint32_t word = w.word;
The union has the following members:
- value:
float
single-precision floating-point number. - word:
uint32_t
word.
Examples
#include "stdlib/number/float32/base/to_word.h"
#include <stdint.h>
#include <stdio.h>
int main( void ) {
float x[] = { 3.14f, -3.14f, 0.0f, 0.0f/0.0f };
uint32_t word;
int i;
for ( i = 0; i < 4; i++ ) {
stdlib_base_float32_to_word( x[ i ], &word );
printf( "%f => word: %u\n", x[ i ], word );
}
}