¿Cómo extraer ciertos bits de una columna hexadecimal de cadena a número?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola gurús
Tengo una pregunta muy sencilla sobre cómo extraer ciertos bits de una columna hexadecimal de cadena (llamada Banderas) a números. Mis valores de columna serán como "0x1BA1". Me gustaría extraer los valores de bits 8 y 9 y convertirlos a un valor de 3 en mi nueva columna. Como no sé la operación binaria en jmp, intenté extraer B en 11 primero haciendo lo siguiente
Char To Hex (Munger (: Flags, 4, 1)).
Me da una columna de caracteres de 42. Intenté poner un "entero" en la fórmula
Char To Hex ((Munger (: Flags, 4, 1)), "integer")
Pero no lo reconocería. Estoy usando jmp11.2.1.
Después de extraer B, usaré el módulo (módulo (valor, 8), 4) para obtener los 2 bits más bajos.
Si hay una forma fácil de extraer bits binarios, será aún mejor.
Gracias,
Jane
Re: ¿cómo extraer ciertos bits de una columna hexadecimal de cadena a un número?Gracias, MS.
Probé el concat "0" y funciona.
Jane
Re: ¿cómo extraer ciertos bits de una columna hexadecimal de cadena a un número?Hola craig
Gracias. La magia "0" delante de "B" es la clave.
Jane
Re: ¿cómo extraer ciertos bits de una columna hexadecimal de cadena a un número?Como Craige señaló (gracias, no lo sabía), JMP 11 requiere un número par de caracteres hexadecimales.
Prueba esta fórmula para las subcadenas de un solo carácter
Hexadecimal al número ( "0" || Sustrato ( Banderas , 4 , 1 )) ;
Re: ¿cómo extraer ciertos bits de una columna hexadecimal de cadena a un número?Hola señorita,
Tengo problemas con el comando "Hex para ...". No funcionan en mi caso. Aquí está la copia de la pantalla. No sé qué podría estar mal.
Gracias,
Jane

Re: ¿cómo extraer ciertos bits de una columna hexadecimal de cadena a un número?antes de JMP 12 necesitarás un número par de caracteres hexadecimales:
Número de hex. ("0B")
11
Re: ¿cómo extraer ciertos bits de una columna hexadecimal de cadena a un número?Hay una función Hex to Number () que convierte los números hexadecimales (como cadenas) en números decimales.
Ejemplo:
maleficio = "0x1BA1" ;
// hexadecimal a decimal
valor = Hexadecimal al número ( Sustrato ( maleficio , 4 , 1 )) ;
Show ( valor ) ;
// decimal a binario
compartimiento = "" ;
Mientras ( valor ,
compartimiento = Carbonizarse ( Modulo ( Num ( valor ) , 2 )) || compartimiento ;
valor = Piso ( valor / 2 ) ;
) ;
Show ( compartimiento ) ;
// Invertir el último paso para confirmación (o simplemente por diversión)
valor2 = Suma ( 2 ^ ( Loc ( Marcha atrás ( Palabras ( compartimiento , "" )) , "1" ) - 1 )) ;
Show ( valor2 ) ;