Cómo convertir datos binarios de 32 bits en decimales en un script jmpHola,
Tengo algunos conjuntos de datos binarios de 32 bits que quiero convertir a Decimal para fines de cálculo matemático.
Puede ser cualquier dato binario aleatorio de 32 bits.
Hasta ahora he probado estos:
1. Fórmula (base ("Datos binarios de 32 bits", 2))
2. BLOB
3. Hexadecimal a decimal (Char a Hex ("Datos binarios de 32 bits"))
Datos binarios de 32 bits:
00000000000110001101011110111000
00000000000111010000000001110100
00000000000111011001001000100000
00000000000110011001010111101000
00000000000111110001111110110101
00000000000110011110000101110000
00000000000111001000111010001000
00000000000111001000110010100000
00000000000110110111000001011110
00000000000111011101100101010000
00000000000110101100110100110100
00000000000110110011100100001011
00000000000111100111010111100110
00000000001000001111101010110100
00000000000111010010000011101111
00000000000110111110010010001000
00000000000111011011100111100100
00000000000110111010111001101100
00000000000111000111110001001100
AnalíticaTabla de datosOtroScriptingRe: Cómo convertir un dato binario de 32 bits a decimal en un script jmpLea esto, JMP15 tiene una función incorporada para este tipo de conversión
https://community.jmp.com/t5/JMPer-Cable/All-your-base-are-belong-to-us-in-JSL/ba-p/227367
Re: Cómo convertir un dato binario de 32 bits a decimal en un script jmpNo tengo instalada la versión JMP15. Actualmente usando JMP 11 Pro. Entonces esta sintaxis no se puede aplicar. También probé esa sintaxisRe: Cómo convertir un dato binario de 32 bits a decimal en un script jmpEscribí un guión rápido, puede modificarlo para convertirse en una función:
a = "00000000000110001101011110111000";
sum = 0;
for(i = 1, i<= 32, i++,
sum = sum + num(substr(a, 33-i, 1))*2^(i-1);
);
Re: Cómo convertir un dato binario de 32 bits a decimal en un script jmpProbé el script de función que está funcionando. Sin embargo, estoy intentando crear una nueva columna con los datos decimales. Parece estar en blanco en esa columna 1F1-DEC.
A continuación está mi guión:
dt2 << Nueva columna ("1F1", Carácter, Nominal, Fórmula (: Nombre ("0x905") ||: Nombre ("0x904")));
dt2 << Nueva columna ("1F1-DEC", numérico, nominal, fórmula (suma = 0;
para (i = 1, i <= 32, i ++,
suma = suma + num (substr (: Nombre ("1F1"), 33-i, 1)) * 2 ^ (i-1);
);););
Re: Cómo convertir un dato binario de 32 bits a decimal en un script jmp@ThuongLe proporcionó una muy buena pieza de JSL.Su modificación en la fórmula de una columna es lo que está causando el problema.Prueba esta fórmula.El código es un poco más genérico y también obliga a la variable "suma" a ser el último elemento ejecutado en la fórmula, que es lo que se devuelve al valor de la fila en la que está trabajando la fórmula.
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;