J'essaye de programmer un générateur d'adresses d'automate. Cependant là je dois faire l'addition peu sage pour trouver la prochaine adresse disponible. Cela signifie que si je commence par l'adresse 0.0 et que j'ajoute 2 bits, alors l'adresse libre suivante sera 0,3. Il monte jusqu'à 0,7 puis la prochaine adresse est de 1,0 jusqu'à 1,7 puis 2,0 et ainsi de suite.Comment faire pour ajouter bit à bit dans C#?
En fonction du type de données que j'ajoute à l'addition, l'adresse libre suivante doit être calculée.
Par exemple, un bool est un bit. 0.1 -> 0.2 -> 0.3 et ainsi de suite Un octet a 8 bits si j'ajoute un octet et la dernière adresse libre est 0.4 la prochaine adresse libre devrait être 2.0. Un mot a 16 bits alors 0.0 -> 2.0 -> 4.0 et ainsi de suite. Un double mot a 32 bits alors 0.0 -> 4.0 -> 8.0 et ainsi de suite.
Je suis à la recherche d'une implémentation en C# où je peux ajouter les différents types en entrée et il l'ajoute et me donne l'adresse correspondante et stocke ensuite la prochaine adresse libre interne pour la prochaine opération.
Par exemple:
Type Startaddress
1 Bool 0.0 (->0.1)
2 Bool 0.1 (->0.2)
3 Byte 1.0 (->1.7) as 8 bits are required
4 Bool 2.0 (->2.1)
5 Word 3.0 (->4.7) as 16 bits are required
6 Double Word 5.0 (->8.7) as 32 bits are required
Toute idée comment je pourrais mettre en œuvre que, à part un grand nombre de cas et d'autre boucle? Je suis à la recherche d'une approche élégante de l'opérateur surchargé.
« si j'ajoute un octet et la dernière adresse libre était de 0,4 devrait être 2.0 l'adresse suivante libre » comment est-ce calculé? –
@ JakubDąbek: Ça n'a pas beaucoup de sens pour moi non plus ... – JuanR