Основные возможности платформы Hexlet не доступны в вашем браузере.
Пожалуйста, обновитесь. Выбрать браузер.

Испытания

↳ NRZI кодирование

JS: Коллекции

NRZI код (Non Return to Zero Invertive) — один из способов линейного кодирования. Обладает двумя уровнями сигнала и используется для передачи битовых последовательностей, содержащих только 0 и 1. NRZI применяется, например, в оптических кабелях, где устойчиво распознаются только два состояния сигнала — свет и темнота.

Принцип кодирования

При передаче логического нуля на вход кодирующего устройства передается потенциал, установленный на предыдущем такте (то есть состояние потенциала не меняется), а при передаче логической единицы потенциал инвертируется на противоположный.

nrzi

solution.js

Реализуйте и экспортируйте по умолчанию функцию, которая в качестве параметра принимает строку в виде графического представления линейного сигнала и возвращает строку с бинарным кодом.

Пример использования:

const signal1 = "_|¯|____|¯|__|¯¯¯";
nrzi(signal1); // => "011000110100"

const signal2 = "|¯|___|¯¯¯¯¯|___|¯|_|¯";
nrzi(signal2); // => "110010000100111"

const signal3 = '¯|___|¯¯¯¯¯|___|¯|_|¯';
nrzi(signal3); // => '010010000100111'

Подсказки

  • Символ | в строке разделяет разные такты и означает, что уровень сигнала в следующем такте, был изменён на противоположный по сравнению с предыдущим.
Начать Успешных завершений: 85%

Последние код-ревью

Автор Дата обновления Версий
srg 14 февр., 14:42 1
coraloreef 12 февр., 10:01 1
user-fc0cda879e292212 03 февр., 11:09 1
solncebro 25 янв., 13:58 1
nixerasse 22 янв., 20:47 1