掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
バイナリ配列 → 整数変換 (ID:142378)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
質問が気になって調べていたら、 既にGODさん、魔界の魔界の仮面弁士 さんから良回答がっ! 1つ気になった点をば。 魔界の仮面弁士さんの回答にあります n = CLng("&H" & Hex(aa(0)) & Hex(aa(1))) は aa(1) が &HFF 固定(もしくは16進数2桁)時に有効です。 仮に aa(1) が &H1 〜 &HF になる可能性がある場合、 16進数の10の位を考慮しないと仕様によっては いけないかもしれません。 考慮するのであれば n = CLng("&H" & Hex(aa(0)) & Right$("0" & Hex(aa(1)),2)) でよいかと思います。 例えば、aa(0) = &H10 , aa(1) = &H1 の場合 CLng("&H" & Hex(aa(0)) & Hex(aa(1))) → &H101 → 257 CLng("&H" & Hex(aa(0)) & Right$("0" & Hex(aa(1)),2)) → &H1001 → 4097 となります。 先に書きましたが、仕様上「257にしたい」となれば 魔界の仮面弁士さんの回答が正しいことになります。 希望する仕様で使い分けてください。 余談 GODさんの回答の補足説明 ◆ & を付与しない場合 → Integer 型で処理されます &H1 〜 &H7FFF → 1 〜 32767 &H8000 〜 &FFFF → -32768 〜 -1 となります。最上位桁が8〜Fの場合は負の整数として扱われます。 もうおわかりでしょうが、n = -1となった理由はこれです。 ◆ & を付与した場合 → Long 型で処理されます &H1 〜 &H7FFFFFFF → 1 〜 2147483647 &H80000000 〜 &FFFFFFFF → -2147483648 〜 -1 となります。こちらも最上位桁が8〜Fの場合は 負の整数として扱われます。 以上
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.