Autohotkey:将函数转换为C#和(&)按位运算符

时间:2014-11-13 04:36:48

标签: c#

我有一个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#中的等价物是什么?有人可以帮我吗?

1 个答案:

答案 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;
    }

看看你是否正在寻找。