Matrices en C con bits

Iniciado por NericSain, 8 Diciembre 2017, 19:34 PM

0 Miembros y 1 Visitante están viendo este tema.

NericSain

Hola a todos, me guaría saber si alguien me puede ayudar o tiene alguna idea con este problema que me surgió.

No, se como puedo tomar datos de una matriz, de tal forma que cada 8 casillas, tome otras 8...
es decir, dividir una matriz cada 8 casillas

por ejemplo:
   

1  2  3  4  5  8  7  3
5  6  9  7  1  1  2  4
0  2  3  4  5  4  8  9
4  0  0  1  6  1  0  0
1  5  9  7  8  4  5  6
3  1  2  3  0  4  0  0

en la matriz pasada quiero tomar 8 casillas, pero de cuatro en cuatro de forma horizontal:  algo asi

1  2  3  4
5  6  9  7

y asi tomar de 8 en 8 casillas

1  2  3  4 5  8  7  3
5  6  9  7 1  1  2  4
0  2  3  4  5  4  8  9
4  0  0  1  6  1  0  0
1  5  9  7  8  4  5  6
3  1  2  3  0  4  0  0



Yo estaba intentando con un contador, que haga que cada vez que ese contador llegue a 4 y saque el modulo:  (cont%4==1) tendría que separarse en 4 bits, pero no me sale


moncker94

Buenas NericSain,

[1] Concepción en pseudocódigo

Considera siempre como buena idea crear el pseudocódigo de tu programa

[1.1] ¿Qué valores quiero tomar?

Si tomamos n como filas y m como columnas e identificamos cada valor de la matriz como anm, tomamos los siguientes valores:

a00 a01 a02 a03
a10 a11 a12 a13
a24 a25 a26 a27
a34 a35 a36 a37

[1.2] Solución rápida

Si solo requerimos estos valores, sería tan sencillo como tener dos vectores, en uno los valores de n y en otro los de m asociados:

vecn[ ] tendría los valores: 0,0,0,0,  1,1,1,1,  2,2,2,2,  3,3,3,3
vecm[ ] tendrías los valor.: 0,1,2,3,  0,1,2,3,  4,5,6,7,  4,5,6,7

Con ello, solo requeriríamos de un vector for que nos diera los índices de manera ordenada (i++ p.ej.) de los dos vectores

[2] En resumen

Conforme explicas la pregunta esta sería una solución correcta, si requieres de más ayuda continúa el hilo e intenta ser más concreto.

NericSain

HOLA moncker94, te agradezco por la atención, y tu idea, me ayudo a pre visualizar, como dijiste el analices en pseudocódigo y así resolver el problema, muchas gracias.. ;)