Bonjour, je souhaiterai transformer des nombres réels positifs de 2àctets (16bits) en bianire sous Scilab.
Contexte:
Dans le tableau "mat_voies_tor" qui possède 1032 lignes et 1 colonnes sont stockées les nombres réels positifs.
Je souhaiterai que les nombres au format binaire soit stockés dans la matrice "Bin". Cette matrice possédant 1032 lignes et 16 colonnes.
Le nombre réel positif de la ligne 1 du tableau "mat_voies_tor", doit être décomposé en 16 bits sur la ligne 1 de la matrice "Bin"
Voici mon code
Le problème c'est que la fonction modulo n'est pas adapté à mon code. C'est à dire qu'il faudrait que je trouve une autre fonction qui me renvoie le reste que si la division est "possible".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 //Récupération des données des voies TOR en format non signé mat_voies_tor = mtlb_fread(idDAT,[nbech,nbwordtor],"us"); // //Cette boucle permet de traiter tous les échantillons de des voies TOR for ech = 1:1032 Nbin = mat_voies_tor(ech); //Extraction de chaque voie TOR pour chaque echantillon for itor = 1:16 reste = modulo(Nbin,2^(16-itor)); //Traitement du nombre binaire en fonction de la valeur du reste if reste >= 1 then //Le tableau Bin contient la valeur de toutes les voies TOR pour chaque instant d'échantillonnage //La norme COMTRADE indique que le LSB est à gauche il correspond donc à la colonne 0 du tableau Bin Bin(ech,itor) = 1; Nbin = Nbin - 2^(16-itor); else Bin(ech,itor) = 0; end // end // end
Mes questions:
-> Existe-t'il un moyen plus imple pour effectuer une conversion en binaire?
->Quelle fonction utiliser à la place de modulo?
Merci de votre aide...
Partager