[[20210907072927]] 『HEX2BIN関数』(まあ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『HEX2BIN関数』(まあ)

https://support.microsoft.com/ja-jp/office/hex2bin-%E9%96%A2%E6%95%B0-a13aafaa-5737-4920-8424-643e581828c1

↑の解説で、
=HEX2BIN("FFFFFFFFFF")が「1111111111」になる理由が理解できません。
実際やってみたら、そのようになるので仕様通りなのだと思いますが...
結果が「1111111111111111111111111111111111111111」なら理解できます。

何故、このような結果になるのでしょうか?

< 使用 Excel:Excel2007、使用 OS:Windows10 >


 16進数で最上位ビットが1の場合、負の数として扱われる。
 で、リンク先の
 >数値が負の数である場合、桁数の値は無視され、10 桁の 2 進数が返されます。
 このルールが適用される。

 最上位ビットが1というのは16進数の先頭を4桁の2進数にした場合にその先頭が1になるもの、つまり16進数で先頭が8以上のもの。
(ねむねむ) 2021/09/07(火) 08:48

 自分もザッと読んでみましたが、簡単に言えばFFF〜というのはマイナスの値だから、ということですね。
 表示が3ケタのカウンターで「000」から1引くと「999」になりますよね?そういうイメージです。
 で、「数値には10文字を超えて指定することはできません」とあるので、10ケタの0から16進数で1引くとFFF〜になります。
 そして出力の値も解説の1つ目の通り2進数10ケタの0から1引くと111〜になるわけです。
(傘) 2021/09/07(火) 09:04

なるぼど、了解しました。
それにしても変な仕様ですね。
逆にエラーになってくれた方がわかりやすいのにと思ってしまいます。
多分、他の変換関数に合わせたのかな..

どうも、ありがとうございました。
(まあ) 2021/09/07(火) 09:31


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.