Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 45. Virtualrästel: Sex

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.09.2003, 14:10 Uhr
virtual
Sexiest Bit alive
(Operator)


Ich bin mal gespannt, wie viele Pageimpressions dieses Rätsel bekommt .

Here we go:

Als Bytesex bzw. Endian bezeichnet man die Anordnung der Bytes im Speicher, zB bei 32 Bit Werten. Wenn man zB von dem Wert 0x01020304 (==16909060) ausgeht, dann kann ein Prozessor auf die Idee kommen, diese Zahl im Speicher als die Folge der 4 Bytes (1, 2, 3, 4) anzulegen (Big Endian), oder aber (4, 3, 2, 1) (Little Endian). Daneben gibt es noch "Middle Endiane", aber ich finde die Welt mit zwei Gechlechtern schon verwirrend genug, daher wollen wir nur die beiden Little und Big berücksichtigen.

Die Aufgaben:

1. Schreibe eine Routine, welche Ermittelt, welchen Geschlechts der Rechner ist: Big oder Little Endian.

2. Schreibe eine Routine, die in der Lage ist 32-Bit Daten so zu schreiben, daß folgende Bedingung erfüllt sind:
a) Pro wert dürfen nur 4 Byte geschrieben werden (also keine Textdateien!)
b) Das geschriebene soll sowohl von einem Big- alsauch Little Endian Rechner lesbar sein (und natürlich gleiche Ergebnisse liefern!). Unabhängig davon, ob es auf einem Little- oder Big-Endian rechner geschrieben wurde.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 08.09.2003 um 15:51 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.09.2003, 14:52 Uhr
0xdeadbeef
Gott
(Operator)


Du solltest zur Bild gehen.

Was die Routine angeht - ungetestet, aber sollte so gehen, denke ich:

C++:
#define BIG_ENDIAN 0
#define LITTLE_ENDIAN 1
/*...*/

int endian() {
  int test = 0x01020304;
  char *c = &test;
  if(c[0] == 1 && c[1] == 2 && c[2] == 3 && c[4] == 4) return BIG_ENDIAN;
  if(c[0] == 4 && c[1] == 3 && c[2] == 2 && c[4] == 1) return LITTLE_ENDIAN;
  /* ... */
}


Die andere Routine läuft entsprechend, nur muss natürlich eine passende Lese-Routine an der anderen Seite hängen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 08.09.2003 um 14:55 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.09.2003, 15:18 Uhr
0xdeadbeef
Gott
(Operator)


Da fällt mir ein/auf: Was ist eigentlich ein Virtaul?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
08.09.2003, 15:52 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat:
0xdeadbeef postete
Da fällt mir ein/auf: Was ist eigentlich ein Virtaul?

Ein Makro, welches nach dem Präprozessordurchlauf zu "Virtual" expandiert...
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
08.09.2003, 16:22 Uhr
0xdeadbeef
Gott
(Operator)


Das steht aber nicht in der virtual.h...naja, dann wahrscheinlich in der virtaul.h, was?

Und ändere nicht den Titel, wenn ich ihn bemängelt habe. Sonst gibt mein Posting keinen Sinn mehr!
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 08.09.2003 um 16:23 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: