アプリ版:「スタンプのみでお礼する」機能のリリースについて

16進数を2進数に変換するコードをselect caseを用いて作りました。
しかし、遅いです。
場合分けの考え方を利用して、例えば変数がFだったら・・みたいな感じで16個のcase全てを書いてみたのですが、もし他にもっと早く処理する方法が合ったら教えてください。
また、データ型はこれが最良でしょうか??

データ型
変数1、2 使用文字:相当長い文字列のためstring
変数3   使用文字:1-0,A-F,及び0000-1111:string
変数4、5 使用文字:1-1,000,000程度:integer

A 回答 (2件)

変数 x : 元の1桁の16進数に相当する数値(0~15)



str$((x and 8)>>3) & str$((x and 4)>>2) & str$((x and 2)>>1) & str$(x and 1)


v : 1桁の16進数文字列
x = CInt("&H" & v)
    • good
    • 0

こんな技はどうですか?


dd(Asc("0")) = "0000"
dd(Asc("1")) = "0001"
dd(Asc("2")) = "0010"
dd(Asc("3")) = "0011"
dd(Asc("4")) = "0100"
dd(Asc("5")) = "0101"
dd(Asc("6")) = "0110"
dd(Asc("7")) = "0111"
dd(Asc("8")) = "1000"
dd(Asc("9")) = "1001"
dd(Asc("10")) = "1010"
dd(Asc("11")) = "1011"
dd(Asc("12")) = "1100"
dd(Asc("13")) = "1101"
dd(Asc("14")) = "1110"
dd(Asc("15")) = "1111"

にしておいて、
label1.caption = dd(Asc(データ))
見たいな感じだと分岐を使わない分早いかもしれないと思うのですが。
    • good
    • 0

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