0
static string ReturnValueIfInputOneIsThree(string inputOne, string input)
{
    string result = "";
    if (CheckIfInputOneIsInACorrectFormatOrNot(inputOne, input) && inputOne == "3")
    {
        for (var i = 0; i < input.Length; i++)
        {
            if (input[i] == '0')
            {
                result += "1";
            }
            else if (input[i] == '1')
            {
                result += "0";
            }
        }

        var finalResult = Convert.ToIn64(result, 2);
        return finalResult.ToString();
    }

    return ThisReturnValuInMain(inputOne, input);
}

~00110001 や ~10 のように、基数 2 の数値を導入し、not 演算子を適用すると、正しい結果が得られましたが、次のような非常に大きな 2 進数を導入すると、次のようになります。

101111111000000000011111111111100000000111111111110000000000111111111111111111111111111111111111111111111111111110000000011111111000000000000000011111111111000000000000」

BigInteger を使用しようとしましたが、コースのモジュールでは使用できないため、別の方法で問題を解決する必要があります。

BigInteger を使用せずにこの問題を解決する方法について何か提案はありますか?

4

1 に答える 1