Загрузка данных


3 ЗАДАНИЕ:

info = "1010"
pos = 1

d = [int(x) for x in info]

r1 = d[0] ^ d[1] ^ d[3]
r2 = d[0] ^ d[2] ^ d[3]
r4 = d[1] ^ d[2] ^ d[3]

h = [0, r1, r2, d[0], r4, d[1], d[2], d[3]]
print(f"Сформированное кодовое слово: {''.join(map(str, h[1:]))}")

r = list(h)
r[pos] = 1 - r[pos]
print(f"Код с ошибкой в позиции {pos}:   {''.join(map(str, r[1:]))}")

s1 = r[1] ^ r[3] ^ r[5] ^ r[7]
s2 = r[2] ^ r[3] ^ r[6] ^ r[7]
s4 = r[4] ^ r[5] ^ r[6] ^ r[7]

err = s4 * 4 + s2 * 2 + s1
print(f"Вычисленный синдром (s4 s2 s1): {s4}{s2}{s1}")
print(f"Определенная позиция ошибки:  {err}")

c = list(r)
if err != 0:
    c[err] = 1 - c[err]
print(f"Исправленное кодовое слово:   {''.join(map(str, c[1:]))}")

out = f"{c[3]}{c[5]}{c[6]}{c[7]}"
print(f"Извлеченное инфо-слово:       {out}")
print(f"Совпадение с исходным:        {out == info}")

4 ЗАДАНИЕ:

n = -73
b = 8

m = abs(n)
bin_m = bin(m)[2:].zfill(b - 1)

pk = "1" + bin_m

ok = "1" + "".join("1" if x == "0" else "0" for x in bin_m)

dk = bin((1 << b) + n)[2:]

print(f"Число: {n} (Разрядность: {b} bit)")
print(f"Прямой код:         {pk}")
print(f"Обратный код:       {ok}")
print(f"Дополнительный код: {dk}")

print("\n--- Обратное восстановление ---")

res_pk = -int(pk[1:], 2)
print(f"Из прямого кода:         {res_pk}")

inv_m = "".join("1" if x == "0" else "0" for x in ok[1:])
res_ok = -int(inv_m, 2)
print(f"Из обратного кода:       {res_ok}")

if dk == "1" + "0" * (b - 1):
    res_dk = int(dk, 2) - (1 << b)
else:
    res_dk = int(dk, 2)
print(f"Из дополнительного кода: {res_dk}")


5 ЗАДАНИЕ:

n = 6.35
opts = [2, 4, 6, 8]

res = {}
print(f"Исследуемое число: {n}\n")

for f in opts:
    scaled = round(n * (2**f))
    restored = scaled / (2**f)
    err = abs(n - restored)
    res[f] = err

    print(f"При дробных битах = {f}:")
    print(f"  Восстановленное число: {restored}")
    print(f"  Абсолютная погрешность: {err:.6f}")
    print("-" * 35)

best = min(res, key=res.get)
print(f"\nНаименьшая погрешность ({res[best]:.6f}) достигается при количестве дробных битов: {best}")