Confirmacion para funcion con punteros
Publicado por Nelek (816 intervenciones) el 11/01/2007 15:45:08
Hola a todos,
si tengo un vector de valores hexadecimales en un fichero
P[8] = { 00, 11, 22, 33, 44, 55, 66, 77 } (pongo los numeros asi para identificar las posiciones mas facilmente)
y luego tengo una funcion que me dice
return (VALUE) ( ( ( ( ( p[3] - x ) * ( unsigned ) p[6] ) >> ( p[7] - 1 ) ) + 1 ) >> 1 );
el valor que me devuelve es el resultado de hacer lo siguiente:
resta "x" a "33" y multiplicalo por "66"
el resultado lo mueves "77" menos uno posiciones a la derecha
a lo que queda le sumas 1
y todo lo anterior lo desplazas otra vez una posicion a la derecha
verdad??????
Ejemplo concreto:
x = 3A
P[8] = { 00, 1A, B2, EB, 9C, 04, 8F, 05 }
quedaría:
return (VALUE) ( ( ( ( ( EB - 3A ) * 8F ) >> ( 05 - 01 ) ) + 01 ) >> 1 );
=
return (VALUE) ( ( ( ( B1 * 8F ) >> 04 ) + 01 ) >> 1 );
=
return ( VALUE ) ( ( ( 62DF >> 04 ) + 01 ) >> 1 );
=
return ( VALUE ) ( ( 62D + 01 ) >> 1 );
=
return (VALUE) (62E >> 1);
=
return (VALUE) (317);
Sería esto correcto??
si tengo un vector de valores hexadecimales en un fichero
P[8] = { 00, 11, 22, 33, 44, 55, 66, 77 } (pongo los numeros asi para identificar las posiciones mas facilmente)
y luego tengo una funcion que me dice
return (VALUE) ( ( ( ( ( p[3] - x ) * ( unsigned ) p[6] ) >> ( p[7] - 1 ) ) + 1 ) >> 1 );
el valor que me devuelve es el resultado de hacer lo siguiente:
resta "x" a "33" y multiplicalo por "66"
el resultado lo mueves "77" menos uno posiciones a la derecha
a lo que queda le sumas 1
y todo lo anterior lo desplazas otra vez una posicion a la derecha
verdad??????
Ejemplo concreto:
x = 3A
P[8] = { 00, 1A, B2, EB, 9C, 04, 8F, 05 }
quedaría:
return (VALUE) ( ( ( ( ( EB - 3A ) * 8F ) >> ( 05 - 01 ) ) + 01 ) >> 1 );
=
return (VALUE) ( ( ( ( B1 * 8F ) >> 04 ) + 01 ) >> 1 );
=
return ( VALUE ) ( ( ( 62DF >> 04 ) + 01 ) >> 1 );
=
return ( VALUE ) ( ( 62D + 01 ) >> 1 );
=
return (VALUE) (62E >> 1);
=
return (VALUE) (317);
Sería esto correcto??
Valora esta pregunta


0