Comment convertir des données binaires 32 bits en décimal dans un script jmpSalut,
J'ai quelques ensembles de données binaires 32 bits que je souhaite convertir en décimal à des fins de calcul mathématique.
Il peut s'agir de n'importe quelle donnée binaire 32 bits aléatoire.
Jusqu'à présent, j'ai essayé ceux-ci:
1. Formule (base ("Données binaires 32 bits", 2))
2. BLOB
3. Hex to Decimal (Char to Hex ("32bit Binary Data"))
Données binaires 32 bits:
00000000000110001101011110111000
00000000000111010000000001110100
00000000000111011001001000100000
00000000000110011001010111101000
00000000000111110001111110110101
00000000000110011110000101110000
00000000000111001000111010001000
00000000000111001000110010100000
00000000000110110111000001011110
00000000000111011101100101010000
00000000000110101100110100110100
00000000000110110011100100001011
00000000000111100111010111100110
00000000001000001111101010110100
00000000000111010010000011101111
00000000000110111110010010001000
00000000000111011011100111100100
00000000000110111010111001101100
00000000000111000111110001001100
AnalytiqueTableau de donnéesAutreScriptingRe: Comment convertir des données binaires 32 bits en décimal dans un script jmpVeuillez lire ceci, JMP15 a une fonction intégrée pour ce type de conversion
https://community.jmp.com/t5/JMPer-Cable/All-your-base-are-belong-to-us-in-JSL/ba-p/227367
Re: Comment convertir des données binaires 32 bits en décimal dans un script jmpJe n'ai pas la version JMP15 installée. Vous utilisez actuellement JMP 11 Pro. Donc, cette syntaxe ne peut pas être appliquée. J'ai également essayé cette syntaxeRe: Comment convertir des données binaires 32 bits en décimal dans un script jmpJ'ai écrit un script rapide, vous pouvez le modifier pour devenir une fonction:
a = "00000000000110001101011110111000";
sum = 0;
for(i = 1, i<= 32, i++,
sum = sum + num(substr(a, 33-i, 1))*2^(i-1);
);
Re: Comment convertir des données binaires 32 bits en décimal dans un script jmpJ'ai essayé le script de fonction, il fonctionne. Cependant, j'essaye de créer une nouvelle colonne avec les données décimales. Il semble être vide sur cette colonne 1F1-DEC.
Voici mon script:
dt2 << Nouvelle colonne ("1F1", Caractère, Nominal, Formule (: Nom ("0x905") ||: Nom ("0x904")));
dt2 << Nouvelle colonne ("1F1-DEC", Numérique, Nominal, Formule (somme = 0;
pour (i = 1, i <= 32, i ++,
somme = somme + num (substr (: Nom ("1F1"), 33-i, 1)) * 2 ^ (i-1);
);););
Re: Comment convertir des données binaires 32 bits en décimal dans un script jmp@ThuongLe fourni un très beau morceau de JSL.Votre modification dans la formule d'une colonne est la cause du problème.Essayez cette formule.Le code est un peu plus générique et aussi, il force la variable "somme" à être le dernier élément exécuté dans la formule, qui est ce qui est retourné à la valeur de la ligne sur laquelle la formule travaille
sum = 0;
end = Length( :Name("1F1") );
For( i = 1, i <= end, i++,
sum = sum + Num( Substr( :Name("1F1") , (end + 1) - i, 1 ) ) * 2 ^ (i - 1)
);
sum;