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 <
010
03.12.2004, 20:51 Uhr
Hans
Library Walker
(Operator)



Zitat von RedEagle:
@ Windalf: Mal so ne Frage am rande: Warum ein "unsigned char - Array" und kein "bool - Array"???

Hi,
wie die anderen schon geschrieben haben, weil bool ein komplettes Byte belegt. Kannst Du auch selber überprüfen, z.B. so:

C++:
#include <iostream.h>

int main()
{
  bool b[19];

  cout << "Grösse von b: " << sizeof(b) << endl;

  return 0;
}


Das liefert als Ergebniss 19, d.h. es werden 19 Bytes belegt. Bei einem char-array kommt man mit 3 Bytes aus.

Hans


P.S. Randinfo für die C++ Experten: Wenn ich #include <iostream> schreibe kennt der compiler später kein cout, weil er nicht mehr der neuste ist.
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 03.12.2004 um 20:55 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
03.12.2004, 21:10 Uhr
Hans
Library Walker
(Operator)



Zitat von ~score:
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

Hi,
eine bessere Idee hab ich dazu auch nicht. Ich würde dieses 512 bit lange Wort als Array implementieren, und die einzelnen Operationen in einer Schleife vom LSB zum MSB hin. Ich erinnere mich, das die Integerarithmetik auf 8-Bit-Prozessoren genau so realisiert wurde.
Die Performance hängt wohl vom Prozessor ab. Bei einem 32-Bit Pro könnten unsigned int's eine bessere Lösung sein, als unsigned char's. Aber musst Du ausprobieren. Wenn Du es kannst, kannst Du die Rechenschleifen ja auch direkt in Assembler schreiben, das spart u.U. ein paar umständliche C-Konstrukte, weil man direkten Zugiff auf's Carryflag hat.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 03.12.2004 um 21:14 Uhr von Hans editiert.
 
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: