我被困在将以下C ++行转换为VB.NET。大多数这些似乎涉及位转移,但是,我需要获得<<
和>>
出代码,以及作为一个平等的检查:
nn = n << 1
m >>= 1
istep = mmax << 1
wr=(wtemp=wr)*wpr-wi*wpi+wr; //what is the check for wtemp=wr?
Run Code Online (Sandbox Code Playgroud)
VB.NET转换是什么样的?
VB.NET使用与C和C ++ 相同的<<
和>>
运算符来支持位移。
Dim nn As Int32 = n << 1
m = m >> 1
istep = mmax << 1
Run Code Online (Sandbox Code Playgroud)wr=(wtemp=wr)*wpr-wi*wpi+wr;
没有做任何“检查”-这是一个内联分配。在VB.NET中,不能将赋值放在表达式中,因此必须单独进行。
wtemp = wr
wr = wtemp * wpr - wi * wpi + wr
Run Code Online (Sandbox Code Playgroud)
我将添加括号以使其保持可读性,因为不是每个人都能记住确切的运算符优先级(例如我自己):
wtemp = wr
wr = ( wtemp * wpr ) - ( wi * wpi ) + wr
Run Code Online (Sandbox Code Playgroud)