Wie kann ich im C# so Programmieren das er nur mit 0 und 1 rechnen kann?

...komplette Frage anzeigen

7 Antworten

Der Rechner rechnet IMMER mit 0 und 1. Das was du meinst, ist eine reine Darstellungsweise. Standardmäßig gibt es sowas nicht. Es gibt nur Dezimal, Oktal und Hexadezimal. Für binäre Darstellung müsstest du dir eine eigene Darstellung programmieren. Vielleicht baust du dir Klasse und überlädst die Grundrechenarten.

PrincPersia 05.08.2017, 23:31

Es wehre besser wenn du mal auch Beispielcode eingebst.

0
dirkasch 05.08.2017, 23:35
@PrincPersia

Es währe besser, wenn du deine Rechtsschreibung verbessern würdest.

1
Theroth 06.08.2017, 00:24

1. deine Rechtschreibung ist beschissen... 2. Warum sollte man immer Codebeispiele geben? 3. denkst du Programmieren ist das richtige für dich?

0
KirmesRuf6 06.08.2017, 03:38
@Theroth

Beispielcode kann manchmal ganz hilfreich sein, aber hier würde eine Hilfestellung genügen!

0

Das kommt sehr darauf an, mit welcher Basis du Werte anzeigen willst. Wenn du eine Lösung suchst, die mit allen Basen funktioniert, schaut die Lösung anders aus, bzw. musst du dir dann selbst was schreiben.

Einfach Variable mit Datentyp Bit mit dem Namen null und das bekommt den Wert 0. dann Variable Bit mit dem Namen eins und das bekommt den Wert 1

Und dann musst du ein Input einbauen... Falls der Anwender 2+2 eingibt (musst du auch noch einbauen) musst du ne Fehlermeldung einbauen

egla666 05.08.2017, 23:25

Danke für den Dislike du Hans

0
regex9 06.08.2017, 00:11
@egla666

Einmal aus Interesse: Woran siehst du, ob dich jemand schlecht bewertet hat? Ich bekomme in den Mitteilungen immer nur positive Nachrichten.

1
regex9 06.08.2017, 00:21

Statt einen eigenen Datentyp könnte man ebenso mit boolschen Werten arbeiten oder man nutzt gleich eine Enumeration:

public enum Bit{ Null = 0, One = 1}

Nachteil ist hier lediglich, dass man jedesmal einen expliziten Typecast vornehmen müsste, bevor eine Berechnung stattfinden könnte. Die Nutzereingabe müsste man so oder so überprüfen.

0

Rechne normal mit Integern. Wenn du das Ergebnis ausgeben willst, dann konvertiere den Wert vorher in einen String mit der Basis 2.

Convert.ToString(value, 2);

Für die Basis 3 müsstest du dir die Werte selbst umrechnen. Dividiere (mit Rest) den Wert einfach so lange durch 3, wie es geht und drehe die Teilresultate dann in ihrer Reihenfolge einfach um.

Bsp.:

75 % 3 = 25 R 0
25 % 3 =  8 R 1
 8 % 3 =  2 R 2
 2 % 3 =  0 R 2
75D    = 2210T

Um zu proben, ob die Rechnung richtig war, hier der Rechenweg in die umgekehrte Richtung:

2 * 3³      = 54
2 * 3²      = 18
1 * 3^1     = 3
0 * 3^0     = 0
54 + 18 + 3 = 75
RakonDark 06.08.2017, 00:34

erstmal müsste er überhaupt seine integer haben ;)  wenn er 5er mit 5er Systemen addieren will , muss er erstmal wissen was 5er im 10er ist :)
Sollte aber schon der Hinweis darauf sein , das Horner Schema zu nutzen .

0
regex9 06.08.2017, 00:57
@RakonDark

Meine Überlegung war eigentlich folgende: Wie die Anwendung rechnet, ist an sich egal. Den Aufwand, für jeden Rechenschritt bspw. das Binärsystem nachzustellen, empfinde ich zu hoch. Also bräuchte er sich lediglich auf die Eingabe des Nutzers (nur 0 und 1 sind erlaubt) und die Ausgabe konzentrieren. Dazwischen kann man normal rechnen lassen.

0

Du denkst an Zahlensysteme.

Umrechnung:

http://www.c-howto.de/tutorial-einfuehrung-binaersystem.html

Das Zählen ist ähnlich, aber statt 10 wird die Base benutzt.

Wenn die base größer als 10 ist, dann musst du Stringe benutzen. Bis 36 sind Buchstaben gewöhnlich; bei größere Basen musst du daran denken, wie du die Ziffern schreiben kannst.

wie überall anders auch , man programmiert sich ein objekt und macht sich dazu die funktionen - + * / wurzel und und und .

RakonDark 05.08.2017, 23:16

oder du rechnest einfach um ins 10er oder Okta oder hexa und rechnest da und dann wieder zurück für die darstellung . kannst natürlich auch mit BIT rechnen . alles machbar .

0
RakonDark 06.08.2017, 00:22
@PrincPersia

das hat doch nix mit code zu tun , du solltest vielleicht erstmal die theoretische Informatik nehmen , das in code umsetzen ist in jeder sprache gleich wenn man erstmal die abläufe hat .

wie man z.b. 0101010 in dezimal umwandelt in deiner Sprache kannst du selber gucken , wie man in dezimal rechnet in deiner sprache kannst du auch gucken ,

wie mann das dann wieder zurück wandelt , also in eine binär ausgabe , gibts auch zu haufe im internet .

ich kann dir hier eine javascript funktion zeigen die hex zu dezimal oder dezimal zu hex anzeigt , aber das prinzip dort geht eigentlich auch auf alle anderen zahlensysteme zu übertragen .

http://praetorians.me/test/hexdez.html

die formel dazu ist immer das horner schema

http://www.c-howto.de/tutorial-einfuehrung-binaersystem.html
https://de.wikipedia.org/wiki/Horner-Schema#Verfahren_f.C3.BCr_die_umgekehrte_Richtung
0

Leute es wehre super wenn ihr auch mal Beispiel code dazu schreibt. Dann werde ich besser verstehen. Weil so komm ich immer nicht weiter.

weckmannu 06.08.2017, 03:49

... es wäre super.. und du würdest verstehen...

0
regex9 06.08.2017, 04:59

Dann werde ich besser verstehen.

Du meinst, dann klappt für dich Copy & Paste besser.

Weil so komm ich immer nicht weiter.

Dann fehlt es dir an Grundlagen in der Programmierung. Eigentlich hast du bereits nach der Lösung deines Problems gefragt und diese in Form von unterschiedlichen Wegen bekommen. Die Umsetzung bedeutet nur noch das Übersetzen in die gewünschte Programmiersprache. Baue aus einer gegebenen Lösung einen Algorithmus und schreibe den Punkt für Punkt herunter. Das ist alles.

PS.: Wenn ich so etwas sehe:

wehre

wird mir übel. Du solltest wissen, dass der Präteritumstamm des Verbs war ist. Für den Konjunktiv 2 in der Gegenwart muss daran nur noch die Konjunktivendung gehängt werden, die zur gewählten grammatischen Person passt (1. Person Singular: e). Starke Vokale im Verb werden zusätzlich zu einem Umlaut umgewandelt. So lautet das Endresultat: wäre.

Die anderen Rechtschreibfehler lasse ich an dieser Stelle unkommentiert.

0

Was möchtest Du wissen?