Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 21. Virtualrätsel

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 < [ 4 ]
020
04.05.2003, 14:54 Uhr
virtual
Sexiest Bit alive
(Operator)


So krank find ich den Algo garnicht. Und mit den 255 bin zuerst auch nicht klar gekommen, aber ist schon logisch: die ersten Drei Zeilen summieren die Bits pro bytes auf. Mit dem Modulo wird dann implicit eine Addition gemacht. Wenn man dann noch hingeht und die Constanten wie folgt ersetzt:

C++:
0x55555555 => ((unsigned int)(-1))/3
0x33333333 => ((unsigned int)(-1))/5
0x0f0f0f0f => ((unsigned int)(-1))/17


Dann funktioniert der Kram nicht nur für 32 Bit integer sondern für Platformen bis 248 Bit, also real betrachtet für einen 128 Bit rechner.
Mit einem Link kann ich augenblicklich nicht dienen, ich habs mir vor jahren mal aus der dclc geholt, ich nehme an, man kann danach googlen...
--
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
021
04.05.2003, 15:03 Uhr
~0xdeadbeef
Gast


Klar, %256 wär auch ziemlich bescheuert, weils nur das hinterste Byte abschneidet. Inzwischen ist mir auch klar, wies läuft - aber auf den ersten Blick dachte ich mir schon 'Ach du scheiße'.

Ich hab auf jeden Fall Respekt vor demjenigen, der sich das ausgedacht hat.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
022
04.05.2003, 15:18 Uhr
~0xdeadbeef
Gast


Hey, dann geht das ja sogar auf SPARC, Itanium und x86-64 noch mit unsigned long long. Und so nebenbei: long long ist doch im C-Standard! Ha! ISO-C99. Dumm nur, dass C99 von keinem Compiler vollständig unterstützt wird...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
023
04.05.2003, 15:58 Uhr
virtual
Sexiest Bit alive
(Operator)


Tja, aber C99 hat eben nicht mit ISO C++ zu tun. Und da. wo ich meinte, daß long long nicht im Standard ist, hast Du ISO C++ versucht zu programmieren.
--
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
024
04.05.2003, 16:02 Uhr
~0xdeadbeef
Gast


Ach Mist. Naja, dann muss ich wohl noch auf den nächsten C++-Standard warten
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
025
06.05.2003, 14:33 Uhr
~arkantos
Gast


#include<stdio.h>

int wandel(unsigned int); //Deklaration

main()
{
unsigned int zahl;
int ergeb;
printf("Bitte Zahl eingeben: ");
scanf("%d", &zahl);
ergeb=wandel(zahl);
printf("\nBei der Zahl %d sind %d Einsen gesetzt\n", zahl, ergeb);
}

int wandel(unsigned int zahl) //Definition
{
static int ergeb=0; //Damit ergeb nicht immer auf 0 gesetzt wird

if(zahl!=0)
{
wandel(zahl/2); //Schöne Rekursion
ergeb+=(zahl%2);
}
return ergeb;
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
026
06.05.2003, 14:56 Uhr
virtual
Sexiest Bit alive
(Operator)


Warum das:

C++:
static int ergeb=0;            //Damit ergeb nicht immer auf 0 gesetzt wird


???
--
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
027
06.05.2003, 14:59 Uhr
~0xdeadbeef
Gast


Das ist, glaub ich, so ne Art Iterationsersatz auf Rekursionsbasis. Das ist zwar ziemlich unschön, und es funktioniert nur einmal, aber man kriegt tatschlich die Zahl der eins-bits der mitgegebenen Zahl raus.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
028
06.05.2003, 14:59 Uhr
~arkantos
Gast


probiers halt mal ohne static, dann wird ergeb immer neu erschaffen, und die ausgabe ist immer entweder 1 oder 0 einsen

grüße arkantos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
029
06.05.2003, 15:03 Uhr
~arkantos
Gast


klar unschön, aber ihr wolltet verschiedene versionen haben.
und die war noch net da.

viele wege führen nach rom.

grüße arkantos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] > 3 < [ 4 ]     [ 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: