|    | 
     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 
 
 | 
     
    
   |