Convertir decimal a binario<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Necesito convertir Columnas de datos (decimales) a binario (8 bits), luego concatenar, digamos, los 4 LSB a la siguiente columna de datos con los 4 MSB.¿Hay alguna manera de al menos convertir datos decimales a binarios en JMP?
Re: Convertir decimal a binarioComo se dijo anteriormente:
Hola, ¿puedes adaptar lo siguiente para hacer lo que necesitas?
<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;
Y:
No hay problema: una cláusula adicional "if" tratará n=0 como un caso especial:
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);
(Supongo que n es un número entero no negativo y que la base es un número entero positivo).
Re: Convertir decimal a binarioHola. ¿Puedes adaptar lo siguiente para hacer lo que necesitas?
// Función para convertir un entero en cualquier base positiva hasta hexadecimal;
base= Función( {n,nbase }, { valor predeterminado local },
ndash = "" ;
dígitos = "0123456789ABCDEF" ;
Mientras( n > 0,
resto = Contra ( n , nbase ) ;
newdigit = Sust. ( dígitos , ( 1 + resto ) , 1 ) ;
ndash = nuevodígito || ndash ;
n= (n -resto ) / nbase ;
);
ndash;
);
// Imprime algunos números para mostrar que funciona en binario;
Para( i = 1, i <= 32, i++,Espectáculo( Carbonizarse( i ) || " = " ||base ( yo, 2 ) ) );
// O bien, cree algunas columnas nuevas en una tabla de datos y rellénelas;
dt= Nueva mesa( "Bases numéricas", Nueva columna( "NORTE",numérico,valores (Índice( 1, 32 ) ) ) );
base numérica= {2, 3, 8, 10, 12, 16}; // Algunas bases numéricas familiares;
Para( i = 1, i <= N artículos(base numérica ), i++,
k=base numérica [ i ];
dt<< Nueva columna( "Base "|| Carbonizarse( k ),personaje );
Para( j = 1, j <= N Row(dt ), j++,
Columna(dt, ("Base "|| Carbonizarse( k )) )[j] =base (j, k ) );
);
//Fin del programa;
Re: Convertir decimal a binarioEs un comienzo. Pero parece que la función base no convierte un cero en un 0 binario.