Bonjour à tous !
Dans le cadre de mes cours, je doit réaliser une calculatrice de grand nombres avec une mémoire optimisé.
Pour ce faire nous avons la contrainte de créer une structure nommé DoubleDigit nous permettant de stocker deux digit dans un seul byte.
Comme vous le savez un byte est composé de 8 bit, sur 4 bits nous pouvons coder 16 valeurs par Digit !
J'ai quelques problèmes de compréhension sur les opérateurs binaire >> et << pour le décalage d'octet et j'aurais aimer obtenir vos avis sur quelques lignes de code !
Premièrement, sur ma structure DoubleDigit, elle prend en paramètre deux Digit ( convertie en binaire préalablement ) et doit les réunir dans un seul et unique Byte.
Exemple :
Je rentre dans ma calculatrice "10".
Il y a ici deux digit soit "1" et "0".
Convertie en binaire j'obtient donc :
1 = 0000 0001
0 = 0000 0000
Voila donc les deux paramètre pour le constructeur de ma structure. Je doit désormais effectuer une sorte de "concaténation" pour recuperé :
- les 4 derniers bit de "1" pour les mettre a la place des 4 premiers bits du Byte retourné de ma structure
- les 4 derniers bits de "0" pour les mettre a la place des 4 derniers bits du Byte retourné de ma structure
1 = 0000 0001
0 = 0000 0000
Byte sortant : 0001 0000
Voici mon constructeur actuel :
Je ne sait pas du tout si mon utilisation de l'opérateur est valable ou si il faut que je décale également de 4 bits le Premier_Digit..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public Nom_de_ma_Structure (byte Premier_Digit, byte Deuxieme_Digit) { dDigit = Deuxieme_Digit; //On met dans dDigit la valeur du deuxième digit dDigit >>= 4; //On décale de 4 bits vers la gauche dDigit = Premier_Digit; //On inscrit le premier digit }
Pour les autres problèmes, j'attendrais de voir vos réponse pour tenter de le résoudre par moi même dans un premier temps.
Merci d'avance pour votre aide précieuse !
Partager