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;
}
Alte URL:
/snippet/binaerstring-int-dezimalwert-umrechnen/105
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 <<