C# :: Aufgabe #189 :: Lösung #2

9 Lösungen Lösungen öffentlich
#189

Zahlen umwandeln: Binär zu Dezimal

Anfänger - C# von Nachbar - 13.09.2017 um 14:19 Uhr
Schreibe eine Funktion, die Zahlen aus dem Dualsystem in Zahlen des Dezimalsystems umwandelt.

Beispiel:

Binär: 11010
Dezimal: 26
#2
vote_ok
von DBqFetti (2480 Punkte) - 15.09.2017 um 22:57 Uhr
Quellcode ausblenden C#-Code
using System;

public class Program {
  public static void Main() {
    Console.WriteLine(BinToLong("11010"));
  }

  static long BinToLong(string bin) {
    int maxLength = sizeof(ulong) * 8;
    if(bin.Length > maxLength) {
      throw new ArgumentException("String is too long. Current lenght is " + bin.Length + ". Maximum length is " + maxLength);
    }

    long longToReturn = 0;
    for(long bit = 1, i = bin.Length - 1; i > -1; bit <<= 1, i--) {
      if(bin[(int)i] == '1') {
        longToReturn |= bit;
      } else if(bin[(int)i] != '0') {
        throw new ArgumentException("String is not binary (only 1 and 0)");
      }
    }

    return longToReturn;
  }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben