Skip to main content
 首页 » 编程设计

C++ 到 VB.NET 的转换

2024年05月22日12kuangbin

我在将以下 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 转换是什么样的?

请您参考如下方法:

  1. VB.NET 支持使用相同的位移位 <<>>运算符如 C 和 C++。

    Dim nn As Int32 = n << 1 
    m = m >> 1 
    istep = mmax << 1 
    
  2. 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