FLOAT64_HIGH_WORD_SIGN_MASK
High word mask for the sign bit of a double-precision floating-point number.
Usage
var FLOAT64_HIGH_WORD_SIGN_MASK = require( '@stdlib/constants/float64/high-word-sign-mask' );
FLOAT64_HIGH_WORD_SIGN_MASK
High word mask for the sign bit of a double-precision floating-point number.
// 0x80000000 = 2147483648 => 1 00000000000 00000000000000000000
var bool = ( FLOAT64_HIGH_WORD_SIGN_MASK === 0x80000000 );
// returns true
Notes
- The higher order word of a double-precision floating-point number is a 32-bit integer containing the more significant bits which include the exponent and sign.
Examples
var getHighWord = require( '@stdlib/number/float64/base/get-high-word' );
var getLowWord = require( '@stdlib/number/float64/base/get-low-word' );
var fromWords = require( '@stdlib/number/float64/base/from-words' );
var FLOAT64_HIGH_WORD_SIGN_MASK = require( '@stdlib/constants/float64/high-word-sign-mask' );
var x = -11.5;
var hi = getHighWord( x ); // 1 10000000010 01110000000000000000
// returns 3223781376
// Mask off all bits except for the sign bit:
var out = (hi & FLOAT64_HIGH_WORD_SIGN_MASK)>>>0; // 1 00000000000 00000000000000000000
// returns 2147483648
// Turn off the sign bit and leave other bits unchanged:
out = hi & (~FLOAT64_HIGH_WORD_SIGN_MASK); // 0 10000000010 01110000000000000000
// returns 1076297728
// Generate a new value:
out = fromWords( out, getLowWord( x ) );
// returns 11.5
C APIs
Usage
#include "stdlib/constants/float64/high_word_sign_mask.h"
STDLIB_CONSTANT_FLOAT64_HIGH_WORD_SIGN_MASK
Macro for the high word mask for the sign bit of a double-precision floating-point number.