C# :: Aufgabe #189 :: Lösung #6
9 Lösungen
#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
Beispiel:
Binär: 11010
Dezimal: 26
#6
von ulfk (100 Punkte)
- 31.05.2018 um 12:00 Uhr
Consolen-Programm mit Eingabeschleife um mehrere Strings nacheinander umwandeln/testen zu können.
C#-Code
namespace Csharp_189_BinaryDecimalConverter
{
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main(string[] args)
{
string inputString;
// loop to enter and check several numbers in a row
do
{
Console.Write("Enter binary number or 'Q' to quit: ");
inputString = Console.ReadLine();
if (IsValidBinaryNumber(inputString))
{
var resultInteger = ConvertBinaryToDecimal(inputString);
Console.WriteLine($"Binary={inputString} --> Decimal={resultInteger}\n");
}
else
{
Console.WriteLine("ERROR: Invalid input! \n" +
" Allowed characters: '0' and '1'\n" +
" Minimum length: 1 character\n" +
" Maximum length: 31 characters\n" +
" Example input: 100110\n");
}
} while (inputString.ToLower() != "q");
}
static int ConvertBinaryToDecimal(string binaryString)
{
var result = 0;
var length = binaryString.Length;
for(var idx = 0; idx < length; idx++)
{
// get digits from right to left and convert them to decimal
var value = binaryString[length - (idx + 1)] == '1' ? 1 : 0;
result += value * (1 << idx);
}
return result;
}
static bool IsValidBinaryNumber(string binaryString)
{
return binaryString.Length < 32
&& Regex.IsMatch(binaryString, @"^([01]+)$");
}
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
