@bohdan-merk

Как перевести двоичное число в обратном представлении в дополнительное представление этого числа в JS?

Есть двоичное число. Суть задания, перевести в прямое, обратное и дополнительное представление.

Первые два сделал, а третье не доходит. Если число заканчивается на 0, то просто добавить к нему 1 нету проблем, но если заканчивается на 1, то при добавлении 1 возникает переполнение. Нужно заменять на 0 и следующий разряд менять на единицу. Алгоритм решения: https://math.semestr.ru/inf/inverse.php

Нашел решение такой проблемы на Паскале:

for k := length(x) downto 1 do
      if m[k] = '1' then
        m[k] := '0'
      else
      begin
        m[k] := '1';
        break;


Попробовал переписать у себя, но не работает:

for (let i = resultNumberAdd.length-1; i >= 1; i--) {
				      if (resultNumberAdd[i] = '1') {
				        resultNumberAdd[i] == '0';
				    }
				      else {
				        resultNumberAdd[i] == '1';
				        break;
				      }
			}
			alert(resultNumberAdd);


Вобщем, если не сложно, кто может описать, как осуществить это, чтобы работало. Извиняюсь, если туплю, только начинаю изучать.
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
twobomb
@twobomb
function getAddCode(code){//00100111 -> 00101000
	code = code.split("");
	for(let i = code.length-1;i >= 0; i--){
  	code[i] ^=1;
    if(code[i])break;
  }
  return code.join("");
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы