Todos los ejercicios
Difícil
Corrige el error
5 pruebas
Multiplicador 4×4 — corrige la extensión de signo asimétrica
Dos valores sin signo de 4 bits a y b se multiplican para dar
un product sin signo de 8 bits. El código actual interpreta por
error a como con signo mientras mantiene b sin signo, lo
que da resultados incorrectos cuando a(3) = '1' (es decir,
a >= 8).
Especificación
aybson enteros sin signo de 4 bits en0..15.product = a * binterpretado como sin signo de 8 bits
(rango0..225).
Pista
Convierte ambos operandos del mismo modo:
unsigned(a) * unsigned(b). El resultado ya cabe exactamente en
8 bits — no hace falta resize.
Caso de prueba visible
a=15, b=2 — el bug interpreta a como -1
| Puerto | Tiempo | Valor |
|---|---|---|
a |
0 ns | 1111 |
b |
0 ns | 0010 |
4 casos de prueba ocultos — resuélvelos para revelarlos.