Gebruikersavatar
jhnbk
Artikelen: 0
Berichten: 6.905
Lid geworden op: za 16 dec 2006, 09:10

80 bit getal manipuleren

Aan de hand van enkele regeltjes krijg ik telkens één bit van de 80. Ik zou achteraf deze serie moeten splitsen en mee verder werken. Iemand enig idee wat hiervoor de handigste methode is?
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.
Gebruikersavatar
Schwartz
Artikelen: 0
Berichten: 691
Lid geworden op: di 14 mar 2006, 18:14

Re: 80 bit getal manipuleren

Als je heel veel bitbewerkingen op 1 getal doet kan men het getal van 80 bits opsplitsen in een array van 80 elementen.

Als men dan het getal nodig heeft dan kan men deze array uitlezen naar bits.

Men kan een variabele opnemen die zegt dat er een bewerking is uitgevoerd, indien er geen bewerking is geweest dan behoeft men het array niet uit te lezen wat tijd scheelt.

Het een en ander is afhankelijk van frequenties.

Men kan ook bitberwerking arrays opbouwen die men kan toepassen.
Een computertaal is voor mensen, niet voor de computer.
Gebruikersavatar
Cycloon
Artikelen: 0
Berichten: 4.810
Lid geworden op: ma 24 jan 2005, 20:56

Re: 80 bit getal manipuleren

Alles hangt idd een beetje af van wat je er later mee wil gaan doen. Sowieso zal je ze in een array moeten bijhouden, maar ook hier hangt alles weer af van wat je wil bereiken. Wil je minimale geheugenbezetting dan zal je best in 32 bit ints gaan opslaan (of 64 als je een 64bit platform hebt), wil je maximale performantie dan maak je best een array van 80 elementen die elk 1 bit onthoudt. Natuurlijk kan je ook elke mogelijke tussenweg nemen (bv 10 elementen van elk 1 byte).
Gebruikersavatar
jhnbk
Artikelen: 0
Berichten: 6.905
Lid geworden op: za 16 dec 2006, 09:10

Re: 80 bit getal manipuleren

Uit wat jullie zeggen lijkt mij de array met lengte 80 het beste.
Wil je minimale geheugenbezetting dan zal je best in 32 bit ints gaan opslaan (of 64 als je een 64bit platform hebt), wil je maximale performantie dan maak je best een array van 80 elementen die elk 1 bit onthoudt. Natuurlijk kan je ook elke mogelijke tussenweg nemen (bv 10 elementen van elk 1 byte).
Welke variabele type heeft één bit? (Een bool lijkt zou wel kunnen uiteraard)
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.
Gebruikersavatar
Rogier
Artikelen: 0
Berichten: 5.679
Lid geworden op: di 27 apr 2004, 13:40

Re: 80 bit getal manipuleren

Hoe is dat 80bit getal in beginsel opgeslagen, of "hoe krijg je het binnen"? En wat wil je er precies mee doen?
In theory, there's no difference between theory and practice. In practice, there is.
Gebruikersavatar
jhnbk
Artikelen: 0
Berichten: 6.905
Lid geworden op: za 16 dec 2006, 09:10

Re: 80 bit getal manipuleren

Ik krijg het per bit binnen vanuit een functie. Ik moet het achteraf manipuleren om als hash key te kunnen gebruiken.

PS: ik heb nog geen code geschreven voor dat deel (gaat zeker gebeuren maar is in eerste instantie optioneel) maar wil op voorhand zo optimaal mogelijk werken aangezien dat deel de globale code zou moeten versnellen.
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.
Gebruikersavatar
Cycloon
Artikelen: 0
Berichten: 4.810
Lid geworden op: ma 24 jan 2005, 20:56

Re: 80 bit getal manipuleren

Welke variabele type heeft één bit? (Een bool lijkt zou wel kunnen uiteraard)


Buiten een bool geen enkele, maar die bool zal zelden exact 1 bit innemen in je systeem, daarom dat ik ook zei dat 80 aparte bits bijhouden qua geheugengrootte zeker niet de beste optie is. Maar met de huidige grote geheugens (en als je niet teveel getallen binnenkrijgt) mag zoiets natuurlijk geen probleem meer zijn. Het hangt er allemaal van af wat je er wil mee gaan doen.
Gebruikersavatar
jhnbk
Artikelen: 0
Berichten: 6.905
Lid geworden op: za 16 dec 2006, 09:10

Re: 80 bit getal manipuleren

Goed. Ik ga tegen dat ik aan dat deeltje kom eens proberen met die array. Dit lijkt mij het makkelijkste aangezien er achteraf delen van moeten worden verwerkt.

EDIT: 80 bit is achteraf gezien wat overschat maar dat maakt niet veel uit.
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.
virtlink
Artikelen: 0
Berichten: 158
Lid geworden op: di 21 mar 2006, 18:44

Re: 80 bit getal manipuleren

wil je maximale performantie dan maak je best een array van 80 elementen die elk 1 bit onthoudt.
Het is waarschijnlijk niet sneller om een array van 80 elementen (booleans bijvoorbeeld) bij te houden, tenzij je steeds maar een bewerking doet op één enkele bit.

Bijvoorbeeld, als je bitsgewijze NOT wilt toepassen op een getal van 80 bits, dan kost dat twee operaties op een array van twee 64-bit getallen, drie operaties op een array van drie 32-bit getallen, enz, en 80 operaties op een array van 80 booleans. Idem voor AND, OR, XOR, en zelfs normaal optellen en aftrekken gaat sneller.

Wat voor operaties moet je/wil je toepassen op het 80 bit getal?
maar die bool zal zelden exact 1 bit innemen in je systeem,
In C# is een boolean een 32-bit getal.
"Niet gehinderd door enige kennis van zaken..."
Gebruikersavatar
jhnbk
Artikelen: 0
Berichten: 6.905
Lid geworden op: za 16 dec 2006, 09:10

Re: 80 bit getal manipuleren

Ik heb uiteindelijk een BitArray gebruikt.
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

Terug naar “Informatica en programmeren”