C++ 到 VB.NET 的转换

标签 c++ vb.net

我在将以下 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
    

关于C++ 到 VB.NET 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58614161/

相关文章:

c++ - 我可以使用 CArchive 在 MFC 中序列化 STL 映射吗?

c++ - boost::asio::deadline_timer 是否为每个计时器使用一个线程?

c++ - 是否存在 "finally"构造在 C++ 中有用的情况?

vb.net - VB.NET中选项比较二进制/文本的优缺点

c# - 是否有以编程方式远程创建 Exchange 邮箱的权威指南?

c# - 如何打开带附件的默认电子邮件客户端

C++ rend() 指向与 rbegin() 相同的元素

c++ - 具有 std::map 和 std::variant 的不完整类型

c# - 在 Visual Studio 2012 中查看以前的 checkin

mysql - 用sql计算过期日期