Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 24. Virtual rästel

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 < [ 2 ] [ 3 ]
000
19.05.2003, 11:48 Uhr
virtual
Sexiest Bit alive
(Operator)


Schreibe Funktionen, die die Bits eines 32 Bit unsigned integer links bzw. rechtsherum rotieren lassen.
Beispiel:

C++:
unsigned a = 0xf0000000; // Binär 1111 0000 0000 0000 0000 0000 0000 0000
[b]rol(a, 2);[/b] // Zu implementieren: rotiere 2 Bits nach links
// a nun binär: 1100 0000 0000 0000 0000 0000 0000 0011
[b]ror(a, 2);[/b] // Zu implementieren: rotiere 2 Bits nach rechts
//a nun wieder im ursprunsgzustand


Beachte: die Operatoren << und >> machen was anderes!
Weiterhin: Assembler code ist nicht zugelassen ()!
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 19.05.2003 um 11:50 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.05.2003, 12:02 Uhr
~0xdeadbeef
Gast


Wie wärs damit:

C++:
unsigned rol(unsigned a) {
    return a<<2 + a>>(sizeof(unsigned)-2)
}

unsigned ror(unsigned a) {
    return a>>2 + a<<(sizeof(unsigned)-2)
}


Wenn mich nicht alles täuscht, müsste das so gehen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.05.2003, 12:02 Uhr
~0xdeadbeef
Gast


Ups, Semikolons vergessen...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.05.2003, 12:41 Uhr
virtual
Sexiest Bit alive
(Operator)


Nö. So gehts nicht. Abgesehen davon fehlt zu jeder Funktion ein parameter, der angibt, um wie viele Bits rotiert werden soll.
--
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
19.05.2003, 12:59 Uhr
~0xdeadbeef
Gast


OK, ein paar Schönheitsfehler. Nächstes mal geb ich noch 5 Minuten fürs Debugging aus. So gehts:

C++:
unsigned rol(unsigned a, unsigned short b) {
  return (a<<b) + (a>>(sizeof(unsigned)*8-b));
}

unsigned ror(unsigned a, unsigned short b) {
  return (a>>b) + (a<<(sizeof(unsigned)*8-b));
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.05.2003, 13:00 Uhr
~0xdeadbeef
Gast


Ach Mist, verkuckt. vertausch die Namen der Funktionen, also so:

C++:
unsigned ror(unsigned a, unsigned short b) {
    return (a<<b) + (a>>(sizeof(unsigned)*8-b));
}

unsigned rol(unsigned a, unsigned short b) {
    return (a>>b) + (a<<(sizeof(unsigned)*8-b));
}


Jetzt aber. *ARGH*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.05.2003, 13:05 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@beefy
manchmal doch nicht so schlecht das cookie
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
19.05.2003, 13:13 Uhr
~0xdeadbeef
Gast


Ich sehe trotz allem nicht ein, Cookies zu unterstützen. Die Dinger sind eine Unsitte, die einfach unnötig ist - dasselbe kriegt man über Session Keys auch hin, und die sind privatsphäretechnisch deutlich unbedenklicher.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
19.05.2003, 13:27 Uhr
virtual
Sexiest Bit alive
(Operator)


Ist aber noch immer nicht die Lösung . Schon mal an

C++:
rol(x, 100);


Gedacht?
--
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
009
19.05.2003, 13:32 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


na dann halt noch %(sizeof(unsigned)*8)
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ 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: