# fromInt64Bytes > Convert a signed 64-bit integer byte array to a [double-precision floating-point number][ieee754].
## Usage ```javascript var fromInt64Bytes = require( '@stdlib/number/float64/base/from-int64-bytes' ); ``` #### fromInt64Bytes( bytes, stride, offset ) Converts a signed 64-bit integer byte array to a [double-precision floating-point number][ieee754]. ```javascript var Uint8Array = require( '@stdlib/array/uint8' ); var bytes = new Uint8Array( [ 255, 255, 255, 255, 255, 255, 255, 255 ] ); var out = fromInt64Bytes( bytes, 1, 0 ); // returns -1.0 ``` The function supports providing a `stride` and an index `offset` for indexing into a provided byte array. ```javascript var Uint8Array = require( '@stdlib/array/uint8' ); var bytes = new Uint8Array( [ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255 ] ); var out = fromInt64Bytes( bytes, 2, 1 ); // returns -1.0 ```
## Notes - The function assumes host byte order (endianness).
## Examples ```javascript var IS_LITTLE_ENDIAN = require( '@stdlib/assert/is-little-endian' ); var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ); var bernoulli = require( '@stdlib/random/base/bernoulli' ); var Uint8Array = require( '@stdlib/array/uint8' ); var fromInt64Bytes = require( '@stdlib/number/float64/base/from-int64-bytes' ); var bytes; var sgn; var x; var b; var s; var i; var j; var k; bytes = new Uint8Array( 8 ); if ( IS_LITTLE_ENDIAN ) { k = 0; s = 1; } else { k = 7; s = -1; } // Generate random integer-valued doubles on the interval (-2^16, 2^16)... for ( i = 0; i < 10; i++ ) { // Determine the sign: sgn = ( bernoulli( 0.5 ) ) ? 0 : 128; // 2^7 // Set a subset of individual (lower-order) bytes: for ( j = 0; j < 2; j++ ) { b = discreteUniform( 0, 255 ); // 2^8-1 bytes[ k+(j*s) ] = b; } // Set higher-order bytes using two's complement: for ( j = 2; j < 8; j++ ) { bytes[ k+(j*s) ] = ( sgn ) ? 255 : 0; // 2^8-1 } // Convert the bytes to a double: x = fromInt64Bytes( bytes, 1, 0 ); console.log( bytes + ' => ' + x ); } ```