Hallo zusammen, wie es der Betreff schon verrät, habe ich mehrere 16x16 Bool-Matrizen oder besser 3D-Arrays, die sich ändern können und wo ich mir jedes Mal den Inhalt merken muss. Es handelt sich um Crosspoint-Matrizen... Nun möchte ich mir aus Speichergründen diese Matrizen mit weniger Variablen bzw. Speicherplatz auf Kosten von Rechenpower "merken" können. Ich stelle mit vor, dass ein 16x16 bool-Array auch irgendwie mit zb 2x16bit uint Variablen voll darstellbar sind? Liege ich da richtig, oder ist das nicht möglich und ich müsste mir jede 16x16 Matrix als 2D-Array ablegen, um den Inhalt der Matrizen wieder voll rekonstruieren zu können? Ich glaube mein Problem ist eher ein "mathematisches" :-) Besten Dank im Voraus Karl
Hallo, kurz nochmal um zu verdeutlichen, was ich genau meine... Die roten "dots" sind Verbindungen. Ax Bx Cx A B C sind Signale bzw. Empfänger. Danke und viele Grüße Karl
Karl schrieb: > Ich stelle mit vor, dass ein 16x16 bool-Array auch irgendwie mit zb > 2x16bit uint Variablen voll darstellbar sind? wie soll das denn gehen? 16x16 sind 256 bit an boolean information wie willst Du die in 32bit (2x16bit uint) packen ohne infos zu verlieren? Karl schrieb: > Betreff: 2D-BoolMatrix mit 2 Variablen beschreiben > > wie es der Betreff schon verrät, habe ich mehrere 16x16 Bool-Matrizen > oder besser 3D-Arrays, Was denn nu? 16x16 oder 16x16x16? letzteres sind immerhin 4096 bit nicht nur 256. Sei mir nicht böse, aber irgendwie hast Du Dich entweder schlecht ausgedrückt oder stehst was die Anzahl der bits angeht grad auf dem Schlauch ;)
Du hast 256 Bits. D. h. die Darstellung aller "dots" benötigt 32 Bytes. Jede Reihe (z. B. Ax) besteht aus 2 Bytes
Karl schrieb: > kurz nochmal um zu verdeutlichen, was ich genau meine... naja verdeutlichen tut das NIX... aber okay Spalte A 100 Spalte B 111 Spalte C 010 neun bit ... keine chance das mit weniger als 9bit zweifelsfrei darzustellen und bei 16x16 ist es dasselbe 16x16 bleiben 256 bit mit 32bit hast Du nur ein achtel der Informationen
Hi, besten Dank für die Anregungen und Gedankenstöße. @Sid: Beides, ich stand auf dem Schlauch und habe mich zudem nicht ganz glücklich ausgedrückt. Aber nun wird alles klarer... 32Byte ist korrekt und verstanden, danke :-) Wie würde eine Rechen/Logikoperation aussehen, um eine bestehende Matrix Mathematisch auszudrücken, bzw. um die Matrix aus den 32bytes zu rekonstruieren? Danke und VG
naja Du kannst eine uint als bitset benutzen und umgekehrt Was genau ist Denn Dein Ziel? "mathematisch" ausdrücken kann vieles heissen
Karl schrieb: > Wie würde eine Rechen/Logikoperation aussehen, um eine bestehende Matrix > Mathematisch auszudrücken, bzw. um die Matrix aus den 32bytes zu > rekonstruieren? Geht es ein klein wenig konkreter? Die 32 Bytes repräsentieren bereits die Matrix. Welche Operationen möchtest du ausführen? Was verstehst du unter rekonstruieren?
Ich vermute, er will wissen, wie er mit einem Zeilen- und einem Spaltenindex jetzt an das entsprechende Matrix-Element kommt. Das hängt letztendlich von der Sprache ab. Man könnte aber z.B. als Array aus 16 Integer mit jeweils 16 Bit abspeichern. Dann kannst du den Zeilenindex direkt als Index für das Array nutzen und den Spaltenindex verwenden, um das passende Bit zu maskieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.