14

2 の補数表記を使用して、符号付き整数を 16 進数としてエンコードする必要があります。たとえば、変換したい

e.g. -24375 to 0xffffa0c9.

これまでのところ、次の行に取り組んできました。

parseInt(-24375).toString(2)
> "-101111100110111"    

これは Wolfram Alphaが表示するものと一致しますが、数値の符号付き 24 ビット int 表現 (ffffa0c9) を取得する方法がわかりません。

符号なしの 2 進数を取り、これを 2 の補数として表す方法を考え出しました。

~ parseInt("101111100110111", 2) + 1
> -23475

しかし、この数値のバイナリ表現を取得して16進数に変換できるかどうかはわかりません。

何か案は?

4

2 に答える 2