tom dierickx
Nieuwe gebruiker
- Lid geworden
- 25 jun 2008
- Berichten
- 3
Geachte,
Voor mijn huidig hobby-programmeerproject heb ik een kort stukje code nodig dat een zeer specifiek doel dient. Mijn probleem is niet dat ik het niet kan programmeren, maar wel dat ik geen efficiënte oplossing vind. Ik schets het probleem hieronder.
Ik zoek twee functies die twee items bijectief in elkaar transformeren.
1) Een 64 bit integer met allemaal 0'en of slechts één 1 op positie 24 tot 39 (dus op de middelste 16 bits van het variabel). --> 17 mogelijkheden
2) Diezelfde 64 bit integer waarin slechts de eerste 8 bits mogen gebruikt worden. In principe volstaan 5 bits voor bijectiviteit, maar 8 bits geeft meer ontwerpvrijheid voor topprestaties. 8 bits is evenwel het maximum.
Ik zoek dus 2 functies die deze twee items bijectief in elkaar omzetten in een recordtempo.... een handigheidje met bit operatoren dus.
Het kader van deze vraag is een schaakcomputer die steunt op bitboard technologie. Voor de geïnteresseerde wil ik hier wel een stukje code posten. Ik hoop alvast op een elegante en snelle oplossing!
Met vriendeljke groeten
Tom Dierickx
Voor mijn huidig hobby-programmeerproject heb ik een kort stukje code nodig dat een zeer specifiek doel dient. Mijn probleem is niet dat ik het niet kan programmeren, maar wel dat ik geen efficiënte oplossing vind. Ik schets het probleem hieronder.
Ik zoek twee functies die twee items bijectief in elkaar transformeren.
1) Een 64 bit integer met allemaal 0'en of slechts één 1 op positie 24 tot 39 (dus op de middelste 16 bits van het variabel). --> 17 mogelijkheden
2) Diezelfde 64 bit integer waarin slechts de eerste 8 bits mogen gebruikt worden. In principe volstaan 5 bits voor bijectiviteit, maar 8 bits geeft meer ontwerpvrijheid voor topprestaties. 8 bits is evenwel het maximum.
Ik zoek dus 2 functies die deze twee items bijectief in elkaar omzetten in een recordtempo.... een handigheidje met bit operatoren dus.
Het kader van deze vraag is een schaakcomputer die steunt op bitboard technologie. Voor de geïnteresseerde wil ik hier wel een stukje code posten. Ik hoop alvast op een elegante en snelle oplossing!
Met vriendeljke groeten
Tom Dierickx