Entwickler-Ecke
Sonstiges (.NET) - Umwandlung von Binärzahlen in Dezimalzahlen
ThomAlex - Do 12.11.09 21:01
Titel: Umwandlung von Binärzahlen in Dezimalzahlen
Hallo zusammen,
Wir haben gerade in der Schule mit Schleifen angefangen und als Aufgabe habe ich in eine Textbox eine Binärzahl vom User eingeben zu lassen, die in einem Label als Dezimalzahl umgewandelt angezeigt werden soll. Mein Code funktioniert, wollte nur nachfragen ob ihr eine elegantere Lösung für mich habt (wundert euch nicht über die überflüssigen Kommentare - der Lehrer möchte es so)
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace binToDez { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public double binärZwischenSumme;
public int exponent;
private void btnBinToDez_Click(object sender, EventArgs e) { exponent = 0; binärZwischenSumme = 0;
lblAusgabe.Visible = true;
int laenge = Convert.ToInt32(txtEingabe.Text.Length);
for (int index = laenge - 1; index >= 0; index--) { if (Convert.ToInt32(Convert.ToString(txtEingabe.Text[index])) == 1) { binärZwischenSumme += Math.Pow(2, exponent); } lblAusgabe.Text = Convert.ToString(binärZwischenSumme); exponent++; } } } } |
Danke für die Hilfe >>> MFG
Moderiert von
Christian S.: C#-Tags hinzugefügtModeriert von
Christian S.: Topic aus WinForms verschoben am Sa 14.11.2009 um 17:39
JasonDelife - Do 12.11.09 22:17
Ein paar Ideen:
1. Benne auch die Form richtig.
2. Convert ist veraltet*. Nutze int.Parse(string) und die Instanzmethode ToString().
3. string.Length ist schon ein int und muss nicht extra konvertiert werden.
4. Vermeide Umlaute und Sonderzeichen in Variablennamen.
5. binärZwischenSumme und exponent sollten auf keine Fall public sein! Hier solltest du sie sogar in der Methode deklarieren.
*Es sei denn, du willst strings mit einer Basis ungleich 10 parsen. (Aber das sollst du hier ja selbst lösen.)
Grüße, JasonDelife.
Christian S. - Do 12.11.09 22:21
JasonDelife hat folgendes geschrieben : |
| 2. Convert ist veraltet*. Nutze int.Parse(string) |
Auch immer einen Blick wert ist TryParse, weil es nicht mit Exceptions um sich wirft, wenn's die Eingabe nicht mag ;-)
ThomAlex - Sa 14.11.09 14:58
ok Vielen Dank
Wüsste jemand wie man dies umgekehrt umsetzt? Also eine Dezimalzahl wird eingegeben und diese soll in Binärcode umgewandelt ausgegeben werden. Bestimmt gibt es dafür eine Methode, aber ich möchte das auch so hinbekommen wie vorhin. Danke schonmal
MFG =)
Christian S. - Sa 14.11.09 18:38
Die Frage wurde (nach einem Schiebeposting in diesem Thread)
hier [
http://www.c-sharp-forum.de/viewtopic.php?t=95947] erneut gestellt.
Eigentlich eine Umgehung des Schiebeposting-Verbots, aber da es sinnvoll ist, die Frage in einem neuen Thread, lasse ich es mal durchgehen. Ich mache hier aber dicht, damit die Frage nicht an zwei Orten diskutiert wird.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!