【发布时间】:2018-05-05 01:05:52
【问题描述】:
我在 VBA 中有一个按位运算,现在我想将其转换为 C#。
我尝试使用 C# 位运算符进行转换,但没有得到结果。
VBA 位运算
Bit1 = (Var1 And 2 ^ 14) Or (Var1 And 2 ^ 15)
C# 位运算
var Bit1 = (bitvalue >> 14) | (bitvalue >> 15);
由于 VBA 没有位移运算符,我们使用 2^places 进行右移,而在 C# 中,我们可以简单地使用 >> 作为右移运算符,但这并没有给我在 VBA 中得到的结果。可能是什么原因?
这是我的完整 C# 函数,它在 VBA 中类似:
public void bitcalc()
{
var Bit1 = (bitvalue >> 14) | (bitvalue >> 15);
if (Bit1 == 16384) getISO15031BitsLetter = "C";
else if (Bit1 == 32768) getISO15031BitsLetter = "B";
else if (Bit1 == 49152) getISO15031BitsLetter = "U";
else getISO15031BitsLetter = "P" ;
}
【问题讨论】:
-
嗯,那不是 VB.NET。那似乎是 C#。
-
"现在我想将其转换为 Vb.net--C#" - VB.NET 和 C# 不是一回事,以防您不这么认为。
-
感谢您指出 Vb.net 和 C# 不一样...... :) 快速谷歌搜索指出 C# 是 .Net 的一种风格......所以 C# 是基于 .NET框架
-
VB.NET 和 C# 都基于 .NET Framework(因此 ".NET"-部分在 VB.NET 中),但是它们的语法和语言结构不同。
标签: c# vba bitwise-operators bit-shift