Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Código: SIC-424
Grupo: GR2
Marco Teórico
Identificador de paridad:
Consiste en añadir un bit de más a la cadena que queremos enviar, y que nos indicará si el número
de unos (bits puestos a 1) es par o es impar. Si es par incluiremos este bit con el valor = 0, y si no
es así, lo incluiremos con valor = 1.
El receptor ahora, repite la operación de contar la cantidad de “unos” que hay (menos el último bit)
y si coincide, es que no ha habido error.
Bit de paridad
El bit de paridad, a diferencia de los bits de inicio y de parada, es un parámetro opcional que se
utiliza en las comunicaciones serie para determinar si el dispositivo remoto está recibiendo
correctamente el carácter de datos que se transmite.
Ninguna: Especifica que el sistema local no debe crear un bit de paridad para los caracteres de datos
que se están transmitiendo. También indica que el sistema local no comprueba el bit de paridad de
los datos recibidos de un sistema principal remoto.
Par: Especifica la suma del número total de unos binarios de un solo carácter es un valor par. En
caso negativo, el bit de paridad debe ser un 1 para asegurarse de que el número total de unos binarios
sea par.
Por ejemplo, si la letra a (1100001 binario) se transmite bajo la paridad par, el sistema de envío
suma el número de unos binarios que, en este caso, es tres y deja el bit de paridad en un 1 para
mantener un número par de unos binarios. Si la letra A (1000001 binario) se transmite bajo las
mismas circunstancias, el bit de paridad sería un 0, por lo que el número total de unos binarios se
mantendría como un número par.
Impar: Funciona bajo las mismas directrices que la paridad par, con la excepción de que el número
total de unos binarios debe ser un número impar.
Desarrollo
Diseñar una matriz de estados que nos permita identificar si una cadena de bits es par o impar,
para lo cual utilizamos autómatas de estado finito de los cuales obtuvimos, 2 matrices:
0 1 0 1
S0 1 0 S0 0 1
S1 0 1 S1 1 0
Se ocupa un ciclo do{}while(); para repetir el menú las veces que se desea. Para el manejo de la
matriz de estados utilizamos un ciclo for para avanzar dento del array de bits y a la vez por la
matriz de estados.
for (int i = 0; i < bits.length(); i++) {
if(bits[i]=='1'){
estado = matEstadosImpar[1][estado];
} else if(bits[i]=='0'){
estado = matEstadosImpar[0][estado];
}
}
Conclusiones
Utilizar máquinas de estado finito en algunos casos resulta ser mas productivo
Las máquinas de estado finito se las representa de mejor manera en matrices de estado lo cual
facilita la programación.
Recomendaciones
Referencias
[1] R. S. STEARNS , D. R. ROSENKRANTZ, P.M LEWIS, «Compiler Design Theory (The Systems
programming series),» ISBN-13: 978-0201144550, 1976, p.52.