• ベストアンサー

16進数を2進数に変換するコードを知りたい

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

質問者が選んだベストアンサー

  • ベストアンサー
noname#39970
noname#39970
回答No.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)

その他の回答 (1)

  • taunamlz
  • ベストアンサー率20% (175/843)
回答No.1

こんな技はどうですか? 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(データ)) 見たいな感じだと分岐を使わない分早いかもしれないと思うのですが。