Ich bin im Moment am schreiben einer simplen "Grafikkarte", welche eine 
16x16 RGB LED Matrix ansteuert. Die Ansteuerung selbst geht, also fange 
ich jetzt mit den Grafikfunktionen (Linie, Viereck etc.) an. Da ich die 
Linienfunktion so einfach bedienbar wie möglich halten wollte, sollte 
die Reihenfolge der Koordinaten egal sein. Also fragt meine Funktion 
einfach ab welche Zahl grösser ist, und dreht sie bei bedarf.
Das habe ich so gelöst:
1  |   int x1 = 0; 
  | 
2  |   int x2 = 0;
  | 
3  |   int y1 = 3;
  | 
4  |   int y2 = 7;
  | 
5  | 
  | 
6  |     if (y2 >> y1)
  | 
7  |     {
 | 
8  |       int temp = y1;    // das hier vertauscht y1 und y2, falls y2 grösser ist.
  | 
9  |       y1 = y2;
  | 
10  |       y2 = temp;
  | 
11  |     }
  | 
12  |     if (y1 == 7 && y2 == 3)   
  | 
13  |     {
 | 
14  |       pixel(30,30,0,7,7); // ausgabe auf display
  | 
15  |     }
  | 
eigentlich sollte die Abfrage "if (y1 == 7 && y2 == 3)" wahr sein, egal 
ob
y1 = 3; und y2 = 7;
oder ob
y1 = 7; und y2 = 3;
da es im ersten fall ja vertauscht wird. Bei mir funktioniert das 
vertauschen aber komischerweise nur, wenn y1 kleiner 3 ist. Das heisst 
so wie oben, wird das pixel(30,30,0,7,7); nie erreicht, wenn ich aber 
alle 3`s durch 2, 1 oder 0 ersetze (so:)
1  |   int x1 = 0; 
  | 
2  |   int x2 = 0;
  | 
3  |   int y1 = 2;
  | 
4  |   int y2 = 7;
  | 
5  | 
  | 
6  |     if (y2 >> y1)
  | 
7  |     {
 | 
8  |       int temp = y1;    // das hier vertauscht y1 und y2, falls y2 grösser ist.
  | 
9  |       y1 = y2;
  | 
10  |       y2 = temp;
  | 
11  |     }
  | 
12  |     if (y1 == 7 && y2 == 2)   
  | 
13  |     {
 | 
14  |       pixel(30,30,0,7,7); // ausgabe auf display
  | 
15  |     }
  | 
dann geht es!
Ich weiss echt nicht mehr weiter, ich hoffe mal es war ein einfacher 
Fehler, und jemand kann mir sagen, warum dass nicht geht.
LG, Sean