我有一个autohotkey函数,我想在c#中转换/移植,但没有取得任何成功。以下是功能:
GetBits(ANumber) ; get string with numbers of enabled bits in a parameter
{
i = 1
bit = 1
result =
loop
{
if(bit = 512)
break
if(ANumber & bit)
result = %result% %i%
bit := 2 * bit
i := i + 1
}
return result
}
具体来说,这条线是什么意思?
if(ANumber & bit)
它在c#中的等价物是什么?有人可以帮我吗?
答案 0 :(得分:0)
行if(ANumber & bit)
正在执行逻辑AND
并检查值是否为真(非零)或假(0)
C#equilent to the line非常相似
if((ANumber & bit) != 0 )
这将检查结果是否为非零以传递条件。
有关详细信息,请参阅 & Operator (C# Reference)
完整代码
我试图转换完整代码。数据类型基于最佳猜测,您可以根据需要进行调整。
string GetBits(int ANumber) // get string with numbers of enabled bits in a parameter
{
int i = 1;
int bit = 1;
string result = string.Empty;
while (true)
{
if (bit == 512)
break;
if ((ANumber & bit) != 0)
result += i.ToString();
bit = 2 * bit;
i++;
}
return result;
}
看看你是否正在寻找。