Skip to content

Function: signedToHex() ​

signedToHex(signedNumber, bits?): string

Write a signed integer as hexadecimal in two's complement, on a given width: bits / 4 uppercase digits, without prefix (-1 on 8 bits is 'FF', 5 on 16 bits is '0005'). The reverse of hexToSigned.

Parameters ​

signedNumber ​

number

The integer, within the width's range (-2^(bits-1) to 2^(bits-1) - 1). Beyond Number.MAX_SAFE_INTEGER the number has already lost its precision.

bits? ​

8 | 16 | 32 | 64 | 128

The width in bits: 8, 16, 32 (the default), 64 or 128.

Returns ​

string

The uppercase hexadecimal digits, exactly bits / 4 of them.

Throws ​

When signedNumber is not an integer (a fraction, NaN, Infinity), or is out of the width's range (128 or -129 on 8 bits).

Example ​

typescript
import {signedToHex} from 'lakutata/utils'

console.log(signedToHex(-1, 8), signedToHex(-128, 8), signedToHex(5, 16), signedToHex(-2))
//FF 80 0005 FFFFFFFE

Released under the MIT License.