| 
    
     |  | 10進数を2進数に高速に変換したいのですが 何かいい方法は無いでしょうか?
 
 現在は下記のプログラムでバイナリファイルを読み込み2進数に変換という
 作業を行っており、buf(i)の要素数は7000程度で、8桁の2進数へ変換しています。
 (倍精度浮動小数点フォーマットで保存されているデータの変換
 をしているプログラムの一部です。)
 For〜Nextのループで1.5sec程度掛かってしまっているのですが
 これを出来れば100msec以下に出来ればうれしいです。
 作業環境はWin98、EXCEL2000です。
 新しいパソコンを使用すれば早くなるのは分かっているのですが
 なんとかする方法は無いでしょうか?
 
 sub test()
 Dim inputFileName As String
 Dim inputFn As Long
 Dim buf() As Byte
 Dim X As Long
 Dim Bin_Str() As String
 
 inputFileName = "C:\data.ini"
 inputFn = FreeFile
 Open inputFileName For Binary As #inputFn
 ReDim buf(LOF(inputFn))
 Get #inputFn, , buf
 Close #inputFn
 
 FOR i=0 next Ubound(buf)
 X=buf(i)
 Bin_Str(i)=kDec2Bin(X)
 Next
 End Sub
 
 Function kDec2Bin(ByVal num As Long) As String
 Dim ss$, ii&, jj&, nn&
 nn = IIf(num < 0, num + 2147483648#, num)
 jj = 7 'jj+1 -> 2進数の桁数
 While Not (-2 ^ jj <= num And num < 2 ^ jj) '桁数を求める
 jj = jj + 8
 Wend
 For ii = 1 To jj
 ss = (nn Mod 2) & ss '2進数の文字列作成 0or1
 nn = nn \ 2
 Next
 kDec2Bin = IIf(num < 0, 1, 0) & ss
 End Function
 
 |  |