Entwickler-Ecke
Basistechnologien - modulo
Rakeem - Do 12.02.09 23:39
Titel: modulo
Hi erst mal,
Ich wollte ein programm machen das von negativen dezimal nach binär umrechnet.
aber irgend wie krieg ich es nicht richtig gebacken.
Hier der sourcecode
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:
| using System;
namespace ConsoleApplication4 { class Class1 { [STAThread] static void Main(string[] args) { int i,neg,zahl;
Console.Write ("Bitte geben Sie eine Zahl an :"); zahl = Convert.ToInt32 (Console.ReadLine ());
for (i=0;i<=16;i++) { zahl = (zahl +1); neg = zahl/2; Console.Write (neg); Console.Write ("/2 = "); Console.Write (zahl); Console.Write (" Rest "); Console.WriteLine(zahl %2);
if (zahl %2 == 0) { Console.Write("1"); } else { Console.Write("0"); } zahl=zahl/2; } } } } |
Moderiert von
Christian S.: C#-Tags hinzugefügtModeriert von
Christian S.: Topic aus C# - Die Sprache verschoben am Do 12.02.2009 um 23:01
Christian S. - Do 12.02.09 23:40
Könntest Du noch eine Fehlerbeschreibung nachreichen? "Nicht gebacken" kann viel bedeuten ;-)
Rakeem - Do 12.02.09 23:45
hm ja ich habe halt auch von positiven zahlen gemacht und es hingekrigt
das wenn ich zum beispiel 5 eingebe er 101 ausgibt
ja wenn ich halt -5 eingebe muss das bei raus kommen 11111111111111111111111111111011
aber die zahl die da raus kommt ist ne andere.
Christian S. - Do 12.02.09 23:55
Wie sieht denn dein Algorithmus für positive Zahlen aus? Aus Deinem für negative Zahlen werde ich irgendwie nicht schlau.
Du kannst ja auch einfach die negative Zahl mit -1 multiplizieren (dann haste die positive), das in Binär konvertieren und dann 'n Minuszeichen davor setzen ;-)
Rakeem - Do 12.02.09 23:56
Der ist 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:
| using System;
namespace Salvatore_Gabriello {
class Class1 {
[STAThread] static void Main(string[] args) { int zahl, i, Erg;
Console.Write("Bitte geben Sie die gewünschte Zahl ein: "); zahl = Convert.ToInt32(Console.ReadLine());
if (zahl <= 0) { Console.WriteLine("Bitte geben Sie eine postive Zahl ein!"); } else { for (i = 0; i <= 256; i++) { Erg = zahl / 2;
Console.Write(zahl % 2);
zahl = zahl / 2; if (zahl == 0) { i = 256; } } Console.WriteLine(" "); } } } } |
Moderiert von
Christian S.: C#-Tags hinzugefügt
jaenicke - Fr 13.02.09 00:04
Christian S. hat folgendes geschrieben : |
| Du kannst ja auch einfach die negative Zahl mit -1 multiplizieren (dann haste die positive), das in Binär konvertieren und dann 'n Minuszeichen davor setzen ;-) |
Nein, laut dem Beispiel (-5 --> 11111111111111111111111111111011) geht das nicht, denn es geht danach zu urteilen nicht um die normale Schreibweise sondern um die Zweierkomplementdarstellung im PC:
http://de.wikipedia.org/wiki/Zweierkomplement
Davon sehe ich allerdings nichts im Quelltext. :nixweiss:
Rakeem - Fr 13.02.09 00:22
ok danke für die hilfe habs jetzt hingekrigt.
Christian S. - Fr 13.02.09 00:23
Dann verrat doch bitte auch, wie Du das gemacht hast, falls mal jemand ein ähnliches Problem hat :-)
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!