我在将以下 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?
VB.NET 转换是什么样的?
最佳答案
VB.NET 支持使用相同的位移位
<<
和>>
运算符如 C 和 C++。Dim nn As Int32 = n << 1 m = m >> 1 istep = mmax << 1
wr=(wtemp=wr)*wpr-wi*wpi+wr;
不做任何“检查” - 这是一个内联分配。在 VB.NET 中,您不能将赋值放入表达式中,因此必须单独进行。wtemp = wr wr = wtemp * wpr - wi * wpi + wr
我会添加括号以保持其可读性,因为不是每个人都能记住确切的运算符优先级(就像我自己一样):
wtemp = wr wr = ( wtemp * wpr ) - ( wi * wpi ) + wr
关于C++ 到 VB.NET 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58614161/