Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Simulation eines 500bit Maschinenworts aus unsigned long

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 ]
000
02.12.2004, 19:57 Uhr
~score
Gast


Hallo!

Ich habe ein kleines diffiziles Problem, das die Spezialisten ansprechen soll. Ich benötige für einen hocheffizienten Algorithmus, der auf Bitparallelisierung basiert, eine Repräsentation eines ca. 500bit langen Maschinenworts. Dieses kann natürlich nur simuliert werden.
Folgende Bitoperationen sollen zwischen mehreren derartigen Wörtern möglich sein:
& und |, ~ (bitweise),
Bitshifts << und >>

Ich suche also eine Implementierung oder Hinweise, wie man dies erreichen kann! Wichtig ist eine hocheffiziente Repräsentation. Für Anregungen wäre ich wirklich sehr dankbar...

Grüße aus Berlin

score
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.12.2004, 21:36 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


würde sagen ne eigene klasse schreiben in der du die 500 bits in form eines arrays von unsingend chars darstellst und dann die von dir geforderten operatoren überlädst...

Gruss aus Spandau
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.12.2004, 23:40 Uhr
(un)wissender
Niveauwart


Für C++: std::bitset ist genau das, was du suchst.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
03.12.2004, 13:05 Uhr
~score
Gast


Danke erstmal für die schnellen Antworten! Aber wie sieht es mit der Effizienz der std::bitset-Klasse aus im Vergleich zu bit-Operationen auf long oder int??

Grüße

score
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.12.2004, 13:53 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Danke erstmal für die schnellen Antworten! Aber wie sieht es mit der Effizienz der std::bitset-Klasse aus im Vergleich zu bit-Operationen auf long oder int??



ich würde sagen da kommt man nicth drum rum das selber auszuprobieren und die zeit zu stoppen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.12.2004, 14:21 Uhr
(un)wissender
Niveauwart


Ist außerem abhängig von deiner STL-Implementierung, es gibt ja nicht eine bitset-Klasse, sonder nur eine Beschreibung davon.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
03.12.2004, 15:20 Uhr
~score
Gast


Ursprünglich hatte ich daran gedacht, eine eigene Repräsentation eines mindestens 500bit langen Wortes zu implementieren. Diese sollte auf mehrerern nativen 32bit Wörtern basieren, die sich zusammen als ein z.B. 512bit Wort verhalten. Dazu müssten dann die bit-Operationen überladen werden. Hat jemand eine Idee, wie man das optimal umsetzten könnte?? Oder gibt es bessere Vorschläge? Ein derartiges Wort passt dann natürlich nicht mehr in ein Prozessorregister, was die Effizienz wohl negativ beeinflussen sollte. Fragen über Fragen, aber eine wirklich gute Idee habe ich bisher nicht...

Grüße
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
03.12.2004, 15:41 Uhr
RedEagle



@ Windalf: Mal so ne Frage am rande: Warum ein "unsigned char - Array" und kein "bool - Array"???
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
03.12.2004, 16:13 Uhr
KaraHead




Zitat von RedEagle:

Warum ein "unsigned char - Array" und kein "bool - Array"???



Ich würd mir das so erklären:
undsigned char ist 1 byte groß (meistens), weil 1 Byte = 8 bit = 255 verschiedene Zahlen.
bool ist auch 1 byte groß (soweit ich weiß).

Nun ist es doch besser einmal ein byte mit char zu verschwenden als ein ganzes array von bytes (mit bool) die soweiso nur 0 und 1 (bit nicht gesetzt oder bit gesetzt) speichern.

Hoffe ist verständlich und richtig

Dieser Post wurde am 03.12.2004 um 16:15 Uhr von KaraHead editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
03.12.2004, 16:58 Uhr
(un)wissender
Niveauwart


1 Byte = 8 bit = 256
bool ist auch 1 byte groß (soweit ich weiß) - das ist undefiniert, kann auch 34 sein
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


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: