Feedback

Binärstring int Dezimalwert umrechnen

Sprache: C#

Diese Funktion rechnet einen String (z.B. "1011") in einen Dezimalwert (11) um. Der übergebene String wird auf Gültigkeit geprüft. Der maximale Wert beträgt 2^31.
private int BinaryStringToInt32(string binString)
{
    int Stringlänge = binString.Length;
    int Rückgabe = 0;
    if (!System.Text.RegularExpressions.Regex.IsMatch(binString, "[01]{" + Stringlänge + "}") || Stringlänge > 31)
        throw new Exception("Ungültige Zeichenfolge");
    else
        for (int i = 0; i < Stringlänge; i++)
            if (binString[i] == '1')
                Rückgabe += (int)Math.Pow(2, Stringlänge - 1 - i);
    return Rückgabe;
}
private int BinaryStringToInt32(string binString)
{
    int Stringlänge = binString.Length;
    int Rückgabe = 0;
    if (!System.Text.RegularExpressions.Regex.IsMatch(binString, "[01]{" + Stringlänge + "}") || Stringlänge > 31)
        throw new Exception("Ungültige Zeichenfolge");
    else
        for (int i = 0; i < Stringlänge; i++)
            if (binString[i] == '1')
                Rückgabe += (int)Math.Pow(2, Stringlänge - 1 - i);
    return Rückgabe;
}

1 Kommentar

  1. In .NET gibt es fast alles, so auch die Umwandlung eines binären String in einen Int:
    int i = Convert.ToInt32 (binString, 2);
    BTW: Zweierpotenzen von Integer-Zahlen berechnet man besser mit dem Shift operator <<