come estrarre determinati bit da una colonna esadecimale di stringa in numero?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao, Guru,
Ho una domanda molto semplice su come estrarre determinati bit da una colonna di stringa esadecimale (chiamata Flags) ai numeri. I miei valori di colonna saranno come "0x1BA1". Vorrei estrarre i valori dei bit 8 e 9 e convertirli in un valore di 3 nella mia nuova colonna. Dato che non conosco l'operazione binaria in jmp, ho provato ad estrarre B in 11 prima facendo quanto segue
Char a Hex (Munger (: Flags, 4, 1)).
Mi dà una colonna di caratteri di 42. Ho provato a inserire un "intero" nella formula
Char To Hex ((Munger (: Flags, 4, 1)), "intero")
Ma non lo riconoscerebbe. Sto usando jmp11.2.1.
Dopo aver estratto B, userò il modulo (module (value, 8), 4) per ottenere i 2 bit più bassi.
Se c'è un modo semplice per estrarre i bit binari, sarà ancora meglio.
Grazie,
Jane
Ri: come estrarre determinati bit da una colonna esadecimale di stringa in numero?Grazie, MS.
Ho provato il concat "0" e funziona.
Jane
Ri: come estrarre determinati bit da una colonna esadecimale di stringa in numero?Ciao, Craig,
Grazie. La magia "0" davanti a "B" è la chiave.
Jane
Ri: come estrarre determinati bit da una colonna esadecimale di stringa in numero?Come ha sottolineato Craige (grazie, non ne ero a conoscenza), JMP 11 richiede un numero pari di caratteri esadecimali.
Prova questa formula per sottostringhe a singolo carattere:
Esadecimale ( "0" || substr ( bandiere , 4 , 1 )) ;
Ri: come estrarre determinati bit da una colonna esadecimale di stringa in numero?Ciao, MS,
Ho problemi con questi comandi "Hex to ..". Non funzionano sul mio caso. Ecco la copia dello schermo. Non so cosa potrebbe essere sbagliato.
Grazie,
Jane

Ri: come estrarre determinati bit da una colonna esadecimale di stringa in numero?prima di JMP 12 avrai bisogno di un numero pari di caratteri esadecimali:
Numero esadecimale ("0B")
11
Ri: come estrarre determinati bit da una colonna esadecimale di stringa in numero?Esiste una funzione Hex to Number () che converte i numeri esadecimali (come stringhe) in numeri decimali.
Esempio:
esadecimale = "0x1BA1" ;
// esadecimale al decimale
valore = Esadecimale ( substr ( esadecimale , 4 , 1 )) ;
Mostrare ( valore ) ;
// decimale in binario
bidone = "" ;
Mentre ( valore ,
bidone = carbonizzare ( Modulo ( Num ( valore ) , 2 )) || bidone ;
valore = Pavimento ( valore / 2 ) ;
) ;
Mostrare ( bidone ) ;
// Invertire l'ultimo passaggio per conferma (o solo per divertimento)
valore2 = Somma ( 2 ^ ( Loc ( Inverso ( Parole ( bidone , "" )) , "1" ) - 1 )) ;
Mostrare ( valore2 ) ;