Search code examples
nsisbitwise-operators

How to use bitwise exclusive-OR command in NSIS


Does anyone know how to perform a bitwise exclusive-OR command in NSIS?

The following is a C# code I would like to implement in NSIS:

private string CalculateChecksum(byte[] dataToCalculate)
        {   int intChecksum1 = 0;
            int intChecksum2 = 0;

            if(strBase64ChrsArray== null)
            {
                strBase64ChrsArray = strBase64Chrs.Split(' ');
            }

            for (int i = 0; i < dataToCalculate.Length - 3; i++)
            {
                intChecksum1 ^= dataToCalculate[i];
            }

            for (int i = 1; i < dataToCalculate.Length - 2; i++)
            {
                intChecksum2 ^= dataToCalculate[i];
            }

            return strBase64ChrsArray.ElementAt((byte)intChecksum1) + strBase64ChrsArray.ElementAt((byte)intChecksum2);
        }

Solution

  • IntOp $0 1234 ^ 5678
    DetailPrint $0