/** * Función para modificar los bits de un arreglo de caracteres de acuerdo a los parámetros recibidos * @param salida Es un arreglo de caracteres al cual se le van a modificar los bits * @param salidaLength El tamaño en bits del arreglo * @param pointer La posición a partir de la cual se comenzar a modificar los * @param c El caracter a codificar * @param frecuencias El arreglo de las frecuencias * @param length El tamaño del arreglo de frecuencias */ int Codificacion::escribeBits(char * salida, int salidaLength, long pointer, char c, Frecuencia * frecuencias, int length){ int bitsescritos = 0; int indiceFrecuencia = buscaFrecuencia(frecuencias, 0, length, c); Frecuencia f = frecuencias[indiceFrecuencia]; Bit * bits = new Bit(); if (indiceFrecuencia >= 0){ for (bitsescritos = 0; f.codigo[bitsescritos] != '\0'; bitsescritos++) { if (f.codigo[bitsescritos] == '1') { bits->pon1(salida, pointer + bitsescritos); } else if (f.codigo[bitsescritos] == '0') { bits->pon0(salida, pointer + bitsescritos); } } } return bitsescritos; }