プロが教える店舗&オフィスのセキュリティ対策術

Excelで16進数を(2の補数などで)負の数の10進数に変換するやり方を
教えてください。

A 回答 (4件)

>それでは、負の数にはならないんじゃないですか?


HEX2DECで扱う幅より小さい場合は、
便宜的に以下のようにすればいいかと思います。
=IF(HEX2DEC(A1)<16^LEN(A1)/2,HEX2DEC(A1),HEX2DEC(A1)-16^LEN(A1))
    • good
    • 11

意味理解してなかったです。

すみません。

=IF(MOD(DEC2BIN(POWER(2,LEN(IF(A2="","",HEX2BIN(A2))))-1)-IF(A2="","",HEX2BIN(A2)),2)=0,F2+1,DEC2BIN(BIN2DEC(DEC2BIN(POWER(2,LEN(IF(A2="","",HEX2BIN(A2))))-1)-IF(A2="","",HEX2BIN(A2)))+1))

これ2進数での結果です。あとは10進数に変換すればいいとおもいますよ。
    • good
    • 2

>それでは、負の数にはならないんじゃないですか?


なります。
試しにやってみてください。

以下は,右の列の各セルに =hex2dec(左隣のセル) と入れてみた結果です。

7fffffffff549755813887
8000000000-549755813888
FFFFFFFFFF-1

どうやら,40ビットで計算しているようです。
    • good
    • 1

こんにちは。



HEX2DEC関数です。エンジニア分類です。

HEX2DEC(数値)です。

エンジニア分類がアドインされてなかったら手動で※アドインしてください。

※ツール⇒アドイン⇒分析ツール[チェック]⇒OKです。(なおofficeCD-ROMが必要になる場合があります。)

この回答への補足

それでは、負の数にはならないんじゃないですか?

補足日時:2005/11/16 01:15
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A