C# Zwei Buchstaben miteinander vergleichen

(1 << (x - 'a')) bestimmt die Position des Buchstabens im Alphabet und shiftet die Zahl 1 um ebendiese Position nach links. Also Buchstabe "a" wird zu der Binärzahl 1b, "c" zu 100b, "e" zu 10000b.
Wenn du also "ABD" eingibst, bekommst du die Werte:
A: 0001b
B: 0010b
D: 1000b

Die musst du jetzt nurnoch übereinanderlegen. Das geschieht mit dem "res = res | ...". Die Werte werden per Bitwise-OR verrechnet. Das bedeutet im Endeffekt, dass eine Art "Summe" gebildet wird.
Im obigen Beispiel also: 0001b | 0010b | 1000b = 1011b
Es werden also alle Bits auf 1 gesetzt, bei denen mind. eines der Elemente eine 1 hat.
 
cx01 schrieb:
(1 << (x - 'a')) bestimmt die Position des Buchstabens im Alphabet und shiftet die Zahl 1 um ebendiese Position nach links. Also Buchstabe "a" wird zu der Binärzahl 1b, "c" zu 100b, "e" zu 10000b.
Wenn du also "ABD" eingibst, bekommst du die Werte:
A: 0001b
B: 0010b
D: 1000b

Die musst du jetzt nurnoch übereinanderlegen. Das geschieht mit dem "res = res | ...". Die Werte werden per Bitwise-OR verrechnet. Das bedeutet im Endeffekt, dass eine Art "Summe" gebildet wird.
Im obigen Beispiel also: 0001b | 0010b | 1000b = 1011b
Es werden also alle Bits auf 1 gesetzt, bei denen mind. eines der Elemente eine 1 hat.

Du hast vielleicht Skills. Vielen Dank nochmal! Milestone 4 ist nun erreicht und das Tool erreicht noch heute den RC-Status!
 
Was cx01 macht sind ganz normale Grundlagen welche man nun mal benötigt. Was er da macht ist wirklich nichts weltbewegendes, aber wenn du das doch so siehst, dann lege ich dir ans Herz dich erst einmal mehr mit dem Zahlensystemen und mit Datenstrukturen auseinander zu setzen und dann mehr über C# zu lesen um ein Verständnis dafür zu bekommen was du dort überhaupt machst! Das bringt dir tausendmal mehr als zu versuchen alles zu verkomplizieren ;)
 
Fonce schrieb:
Was cx01 macht sind ganz normale Grundlagen welche man nun mal benötigt. Was er da macht ist wirklich nichts weltbewegendes, aber wenn du das doch so siehst, dann lege ich dir ans Herz dich erst einmal mehr mit dem Zahlensystemen und mit Datenstrukturen auseinander zu setzen und dann mehr über C# zu lesen um ein Verständnis dafür zu bekommen was du dort überhaupt machst! Das bringt dir tausendmal mehr als zu versuchen alles zu verkomplizieren ;)

Ja, ich habe ein Buch und ich werde darin lesen.

Was meinst du mit Datenstrukturen?
 
Binärbäume, einfach Verkettete Listen, doppelt verkettete Listen, Hashtables usw.
Achja und in Sortieralgorithmen solltest dich am besten auch noch einlesen!

Die Programmiersprache dient ja nur als Werkzeug um dir ein Programm zu basteln um eine Problemstellung möglichst gut zu lösen! Die von mir genannten Grundlagen dienen vor allem auch zu besseren Analyse des Problems und besseren Umsetzung!

EDIT:
Achja und Sortieralgorithmen sind auch wichtig!
 
Zuletzt bearbeitet:
Upps einmal geklickt und schon kanns nicht gelöscht werden... Einfach ignorieren was hier stand...
 
Madman1209 schrieb:
Hi,



der Kunde "weiß" es nicht exakt, aber ein Pflichten-/Lastenheft mit expliziter Beschreibung ist nicht unüblich - und wenn deine Konkurrenz nur die Hälfte der Zeit braucht (was idR die Hälfte der kosten verursacht) und die gleichguten Ergebnisse liefert... für wen entscheidet sich dein Kunde dann? ;)





Finde ich ein wenig widersprüchlich - aber das ist eben deine Meinung.

Das war auch überhaupt nicht böse gemeint, ich finde lediglich, das Projekt kannst du mit einfachsten Mitteln umsetzen und es macht wenig Sinn, diese zu verkomplizieren. Es gibt sicher noch genug andere Projekte, die sich vortrefflich eignen, um tiefer in die Programmierung zu gehen - gerade WPF mit verschiedenen Design-Patterns (z.B. MVVM) seien dir da wärmstens ans Herz gelegt.

Das sind nur Empfehlungen, was du dann am Ende machst ist dein Bier. Ich wollte nur andeuten: Zum Spaß ist das Projekt ok, aber man sollte einfach nicht in die falsche Richtung denken. Der beste Programmierer bringt nichts, wenn er nicht in aktzeptabler Zeit das gleiche Ziel erreicht (alles schon erlebt: hoch begabt, sehr talentiert, vollkommen am Kunden und der Zeit vorbei). Wenn du allerdings nicht nur zum Spaß programmieren willst und dir vorstellen kannst das auch mal beruflich zu machen solltest du dir einfach andere Vorgehensweisen zu Gemüte führen. Das ist nur ein gut gemeinter Rat :)

Wie gesagt: nicht falsch verstehen, ich mein's dir nur gut und hab auch schon ein wenig Programmiererfahrung! :) ;)

VG,
Mad


Die zwei Zitate scheinen vielleicht widersprüchlich, ich hatte aber geschrieben: "Aber diese Kundengeschichte hat überhaupt nichts mit meinem Tool zu tun!"
Mit dem meine ich, dass ich im Gegensatz zu den meisten anderen eine andere Vorstellung davon habe, wie ein Programm am besten und schnellsten zu bedienen ist. In meinem Fall wäre das per Tastatur, während "der Kunde" mit der Maus arbeiten will. Das Tool hat aber nichts mit Kunden zu tun, da es für meine Weiterbildung und für die geschäftsinterne Benutzung geschrieben wurde.
Deine Aussagen mögen stimmen, bringen mir aber in dieser Situation nichts.

Ich will nicht beruflich programmieren, auf keinen Fall, ich werde höchstens ab und zu ein Hilfsprogramm so wie dieses schreiben (wahrscheinlich noch etwas komplexer), mehr nicht.


Beenden wir hier die Diskussion.
 
Zurück
Oben