tom dierickx
Nieuwe gebruiker
- Lid geworden
- 25 jun 2008
- Berichten
- 3
Beste
Ik heb plannen gemaakt om een applicatie te programmeren in cpp. In dit programma wens ik gebruik te maken van 64bit bitboards. Op deze bitboards zullen dan tal van binaire operaties losgelaten worden.
Ik zoek een idee voor de implementatie van deze bitboards. Ik heb al 2 alternatieven bedacht, maar deze hebben beiden een groot gebrek. Ik vermeld ze hier toch even:
a) Gebruik van een signed long. Volgens de cpp normen bestaat deze slechts uit 4 bytes. Te klein dus voor mijn probleem. In java bestaat een long uit 8 bytes...
b) een struct met 64 booleanwaarden waarbij in de typedeclaratie slechts 1 bit per boolean wordt toegekend. Op dit datatype kan ik geen shift operatie toepassen... een essentiele voorwaarde. Zelf indien dit mogelijk was, heb ik bij dit type nog geen controle over de geheugenlocatie van de verschillende velden van de struct. Ik kan wel aannemen dat ze gerangschikt staat volgens de volgorde waarin ze in mijn broncode staan, maar dat geeft toch niet genoeg garanties.
Kortom: Ik zoek een andere oplossing.
De vereisten zijn:
* 64 bit
* shiftoperaties zijn mogelijk (bij een rightshift moet een 0 worden ingeschoven)
* binaire and, or, xor....
* kennis over de rangschikking van de bits, opdat ik mijn shifts goed kan ontwerpen.
* (zeer) snel schrijfbaar en leesbaar
Suggesties zijn welkom
Alvast bedankt!
Tom Dierickx
Ik heb plannen gemaakt om een applicatie te programmeren in cpp. In dit programma wens ik gebruik te maken van 64bit bitboards. Op deze bitboards zullen dan tal van binaire operaties losgelaten worden.
Ik zoek een idee voor de implementatie van deze bitboards. Ik heb al 2 alternatieven bedacht, maar deze hebben beiden een groot gebrek. Ik vermeld ze hier toch even:
a) Gebruik van een signed long. Volgens de cpp normen bestaat deze slechts uit 4 bytes. Te klein dus voor mijn probleem. In java bestaat een long uit 8 bytes...
b) een struct met 64 booleanwaarden waarbij in de typedeclaratie slechts 1 bit per boolean wordt toegekend. Op dit datatype kan ik geen shift operatie toepassen... een essentiele voorwaarde. Zelf indien dit mogelijk was, heb ik bij dit type nog geen controle over de geheugenlocatie van de verschillende velden van de struct. Ik kan wel aannemen dat ze gerangschikt staat volgens de volgorde waarin ze in mijn broncode staan, maar dat geeft toch niet genoeg garanties.
Kortom: Ik zoek een andere oplossing.
De vereisten zijn:
* 64 bit
* shiftoperaties zijn mogelijk (bij een rightshift moet een 0 worden ingeschoven)
* binaire and, or, xor....
* kennis over de rangschikking van de bits, opdat ik mijn shifts goed kan ontwerpen.
* (zeer) snel schrijfbaar en leesbaar
Suggesties zijn welkom
Alvast bedankt!
Tom Dierickx
Laatst bewerkt: