Exciting news!Announcing our $4.6M Series Seed. Learn more
Socket
LoveBlogFAQ
Install
Log in

math-float32-to-binary-string

Package Overview
Dependencies
7
Maintainers
1
Versions
1
Issues
File Explorer

Advanced tools

math-float32-to-binary-string

Returns a string giving the literal bit representation of a single-precision floating-point number.

    1.0.0latest

Version published
Maintainers
1
Yearly downloads
15,524
decreased by-53.91%

Weekly downloads

Readme

Source

Binary String

NPM version Build Status Coverage Status Dependencies

Returns a string giving the literal bit representation of a single-precision floating-point number.

Installation

$ npm install math-float32-to-binary-string

Usage

var binaryString = require( 'math-float32-to-binary-string' );

binaryString( x )

Returns a string giving the literal bit representation of a single-precision floating-point number.

var toFloat32 = require( 'float64-to-float32' ); var str = binaryString( toFloat32( 4 ) ); // returns '01000000100000000000000000000000' str = binaryString( toFloat32( Math.PI ) ); // returns '01000000010010010000111111011011' str = binaryString( toFloat32( -1e38 ) ); // returns '11111110100101100111011010011001'

The function handles subnormals.

str = binaryString( toFloat32( -3.14e-39 ) ); // returns '10000000001000100011000100001011' str = binaryString( toFloat32( 1.4e-45 ) ); // returns '00000000000000000000000000000001'

The function handles special values.

var pinf = require( 'const-pinf-float32' ); var ninf = require( 'const-ninf-float32' ); str = binaryString( 0 ); // returns '00000000000000000000000000000000' str = binaryString( -0 ); // returns '10000000000000000000000000000000' str = binaryString( NaN ); // returns '01111111110000000000000000000000' str = binaryString( pinf ); // returns '01111111100000000000000000000000' str = binaryString( ninf ); // returns '11111111100000000000000000000000'

Examples

var round = require( 'math-round' ); var pow = require( 'math-power' ); var float64ToFloat32 = require( 'float64-to-float32' ); var binaryString = require( 'math-float32-to-binary-string' ); var frac; var sign; var exp; var b; var x; var i; // Convert random numbers to literal bit representations... for ( i = 0; i < 100; i++ ) { if ( Math.random() < 0.5 ) { sign = -1; } else { sign = 1; } frac = Math.random() * 10; exp = round( Math.random()*100 ); if ( Math.random() < 0.5 ) { exp = -exp; } x = sign * frac * pow( 2, exp ); x = float64ToFloat32( x ); b = binaryString( x ); console.log( b ); }

To run the example code from the top-level application directory,

$ node ./examples/index.js

Tests

Unit

This repository uses tape for unit tests. To run the tests, execute the following command in the top-level application directory:

$ make test

All new feature development should have corresponding unit tests to validate correct functionality.

Test Coverage

This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:

$ make test-cov

Istanbul creates a ./reports/coverage directory. To access an HTML version of the report,

$ make view-cov

Browser Support

This repository uses Testling for browser testing. To run the tests in a (headless) local web browser, execute the following command in the top-level application directory:

$ make test-browsers

To view the tests in a local web browser,

$ make view-browser-tests

License

MIT license.

Copyright © 2016. The Compute.io Authors.

Keywords

Socket

Product

Subscribe to our newsletter

Get open source security insights delivered straight into your inbox. Be the first to learn about new features and product updates.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc