°Light°
01.06.2010, 19:50
Hallo zusammen da ich ja C / C + + lernen will habe ich mir ein Buch besorgt in dem (fast)alles zimlich gut erklärt wird doch bin ich auf eine Formel gestoßen die ich nicht verstehe.
Ich sollte als Aufgabe den ganze ASCII-Zeichensatz als eine Tabelle (siehe hier (http://img215.imageshack.us/img215/2853/unbenanntgz.png)) darstellen.
Hier die Lösung dazu:
#include <stdio.h>
#include <conio.h>
int main(int argc, char *argv[])
{
unsigned char zeichen;
int zeile, spalte, i;
printf(" ");
for (i = 0; i < 8; i = i+1)
printf(" %c ", '0' + i);
printf("\n");
for (zeile = 0; zeile < 16; zeile = zeile + 1)
{
if (zeile < 10)
printf("%c", '0' + zeile);
else
printf("%c", 'a' - 10 + zeile);
for (spalte = 0; spalte < 8; spalte = spalte + 1)
{
zeichen = (spalte << 4) | zeile;
if((zeichen >= 0x20) && (zeichen <= 0x7e))
printf(" %c ", zeichen);
else
printf(" . ");
}
printf("\n");
}
printf("\nDie Punkte dienen als Ersatzzeichen der nichtdruckbaren Zeichen");
getch();
}
So zum ausrechnen der einzelnen Zeichen ergibt sich die
Formel: "zeichen= 16*spalte + zeile" so bist dahin ist alles klar nun stellt mein Buch die Formel so da: "zeichen = (spalte << 4) | zeile"
und genau das verstehe ich nicht, wie ich von der einfachen Formel auf diese komme. Durch die Pfeile wird ja um 4 Bit die spalte nach links verschoben aber was bringt mir das ^^ ? Wäre echt cool wenn das hier einer versteht und mir erklären kann.
MfG °light°
Ich sollte als Aufgabe den ganze ASCII-Zeichensatz als eine Tabelle (siehe hier (http://img215.imageshack.us/img215/2853/unbenanntgz.png)) darstellen.
Hier die Lösung dazu:
#include <stdio.h>
#include <conio.h>
int main(int argc, char *argv[])
{
unsigned char zeichen;
int zeile, spalte, i;
printf(" ");
for (i = 0; i < 8; i = i+1)
printf(" %c ", '0' + i);
printf("\n");
for (zeile = 0; zeile < 16; zeile = zeile + 1)
{
if (zeile < 10)
printf("%c", '0' + zeile);
else
printf("%c", 'a' - 10 + zeile);
for (spalte = 0; spalte < 8; spalte = spalte + 1)
{
zeichen = (spalte << 4) | zeile;
if((zeichen >= 0x20) && (zeichen <= 0x7e))
printf(" %c ", zeichen);
else
printf(" . ");
}
printf("\n");
}
printf("\nDie Punkte dienen als Ersatzzeichen der nichtdruckbaren Zeichen");
getch();
}
So zum ausrechnen der einzelnen Zeichen ergibt sich die
Formel: "zeichen= 16*spalte + zeile" so bist dahin ist alles klar nun stellt mein Buch die Formel so da: "zeichen = (spalte << 4) | zeile"
und genau das verstehe ich nicht, wie ich von der einfachen Formel auf diese komme. Durch die Pfeile wird ja um 4 Bit die spalte nach links verschoben aber was bringt mir das ^^ ? Wäre echt cool wenn das hier einer versteht und mir erklären kann.
MfG °light°