Ver Mensaje Individual
  #5  
Antiguo 31-05-2008
Avatar de Guillermo80
Guillermo80 Guillermo80 is offline
Miembro
 
Registrado: may 2007
Posts: 87
Reputación: 18
Guillermo80 Va por buen camino
Perfecto

Hola Al, sólo tengo que decirte que tu explicación encaja como un guante, ahora entiendo cómo trabaja el bloque completo. Hacía tiempo que no usaba or para sumar bits, estaba obcecado pensando en "el otro or", o sea, o cojo la expresión evaluada a la izquierda o la de la derecha (es que hoy estoy espeso).

Bueno, pues dejo la explicación final y resumidaara una muestra de un canal tenemos 2bytes, al más significativo lo corro 8 bits a la izquierda con shl 8, y a continuación se le suma con el operador or el byte menos significatico, cuyo resultado va a una posición del array pcm. Para una muestra completa de una posición de pcm resultaría del siguiente ejemplo:

byte1 + byte2 = muestra completa canal L
byte1 = 11000001; byte2 = 01010001
Tomando que el byte1 debe ser el más significativo, debe ser el que desplacemos 8 bits a la izquierda:

muestra1 equivalente = 1100000100000000 (habrá que guardarlo en un entero)

Ahora hago la suma de ambas muestras (guardadas en variables tipo entero):

1100000100000000
0000000001010001 +
--------------------
1100000101010001 --> será una muestra del array pcm, de tipo entero

¡ Todo encaja ! Gracias a los dos
Responder Con Cita