■91893 / inTopicNo.25) |
Re[18]: C++からVBへの変換 |
□投稿者/ 魔界の仮面弁士 (2289回)-(2019/08/08(Thu) 16:44:07)
|
■No91892 (えん さん) に返信 > 等価な変換ありませんでしたか
No91848 で書かれていた URL のアルゴリズムはさっぱり分かりませんが、 No91862 に書かれていた部分の
n = (4の冪乗な整数); i = 0; for (j = 1; j < n - 1; j++) { for (k = n >> 1; k > (i ^= k); k >>= 1);
DoAnything(i, j); }
の処理について、DoAnything 部さえ同じ結果になれば良いのなら、 こういう風に書くこともできますね。
Dim bitLength As Integer = 2 * CInt(Int(Math.Log(n, 4))) For j As Integer = 1 To n - 2 Dim bin As String = Convert.ToString(j, 2).PadLeft(bitLength, "0"c) Dim i As Integer = Convert.ToInt32(StrReverse(bin), 2)
DoAnything(i, j) Next
|
|