Converti decimale in binario<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho bisogno di convertire le colonne di dati (decimali) in binari (8 bit), quindi concantare dire il 4 LSB alla colonna di dati successiva con il 4 MSB.C'è un modo per convertire almeno i dati decimali in binari in JMP?
Ri: Converti decimale in binarioCome precedentemente affermato:
Ciao, puoi adattare quanto segue per fare ciò di cui hai bisogno?
<SPAN>// Function to convert an integer into any positive base up to hexadecimal;</SPAN><BR />base = Function( {n, nbase}, {default local},
ndash = "";
digits= "0123456789ABCDEF";
While( n > 0,
remainder= Mod( n, nbase );
newdigit= Substr( digits, (1 + remainder), 1 );
ndash= newdigit || ndash;
n= (n - remainder)/ nbase;
);
ndash;
);
// Print out a few numbers to show it working in binary;
For( i = 1, i <= 32, i++, Show( Char( i ) || " = " || base( i, 2 ) ) );
// Or create some new columns in a data table and fill them;
dt = New Table( "Number Bases", New Column( "N", numeric, values( Index( 1, 32 ) ) ) );
numberbase = {2, 3, 8, 10, 12, 16}; // Some familiar number bases;
For( i = 1, i <= N Items( numberbase ), i++,
k= numberbase[i];
dt<< New Column( "Base "|| Char( k ), character );
For( j = 1, j <= N Row( dt ), j++,
Column( dt, ("Base "|| Char( k )) )[j] = base( j, k ) );
);
// End of program;
E:
Nessun problema: una clausola aggiuntiva "if" tratterà n=0 come un caso speciale:
base = function({n, base}, {default local}, ndash = ""; digits = "0123456789ABCDEF";
if(n > 0, while(n > 0, remainder = mod(n, base); newdigit = substr(digits, (1 + remainder), 1);
ndash = newdigit || ndash; n = (n - remainder) / base), ndash = "0"); ndash);
(Presumo che n sia un numero intero non negativo e che la base sia un numero intero positivo.)
Re: Convertire decimale in binarioCiao, puoi adattare quanto segue per fare ciò di cui hai bisogno?
// Funzione per convertire un numero intero in qualsiasi base positiva fino all'esadecimale;
base= Funzione( {n,base }, { predefinito locale },
ndash = "" ;
cifre = "0123456789ABCDEF" ;
Mentre( n > 0,
resto = Contro ( n , nbase ) ;
newdigit = Substr ( cifre , ( 1 + resto ) , 1 ) ;
ndash = nuova cifra || ndash ;
n= (n -resto ) / nbase ;
);
ndash;
);
// Stampa alcuni numeri per dimostrare che funziona in binario;
Per( i = 1, i <= 32, i++,Spettacolo( Char( i ) || " = " ||base ( io, 2 ) ) );
// Oppure crea nuove colonne in una tabella dati e riempile;
dt= Nuova tabella( "Basi numeriche", Nuova colonna( "N",numerico,valori (Indice( 1, 32 ) ) ) );
base numerica= {2, 3, 8, 10, 12, 16}; // Alcune basi numeriche familiari;
Per( i = 1, i <= N elementi(base numerica ), i++,
k=base numerica [ i ];
dt << Nuova colonna ( "Base" || Char ( k ) , carattere ) ;
Per( j = 1, j <= Riga N(dt ), j++,
Colonna(dt, ("Base"|| Char( k )) )[j] =base (j, k ) );
);
// Fine del programma;
Re: Convertire decimale in binarioÈ un inizio. Ma sembra che la funzione base non converta uno zero in 0 binario,