• Напишите программу сложения, вычитания и умножения двух двоичных чисел. Предложите способ проверки результата: 1011 и 110

Ответы 6

  • просто функция более универсальная... но да, можно немного и сократить при желании
  • Да зачем же 36 символов в системе, у которой алфавит двухсимвольный?
    • Автор:

      vasquez
    • 5 лет назад
    • 0
  • Вы ведь просто переводите двоичные числа в десятичные, выполняете операцию и результат снова переводите в двоичную систему.
    • Автор:

      hardy4c0o
    • 5 лет назад
    • 0
  • Я же говорю - функции мои, готовые, сделанные для универсального использования. Я просто беру готовые блоки и "склеиваю" под свои нужды. Даже если алфавит будет 2-ух символьным - это сократит код мизерно. Я конечно понимаю, что Вы возможно перфекционист, но моё решение именно такое и еще больше его оптимизировать смысла не вижу. Хотите предложить лучше? Милости просим! Я только "ЗА", чтобы все могли увидеть несколько разных подходов к решению.
  • Я несколько о другом. О том, что Вы предлагаете некое "универсальное решение" для частной ШКОЛЬНОЙ задачи. Тут уж не до перфекционизма.
  • Const  Rn : String[36] = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';Function DecToN(a : Longint; Raz : Byte) : String;Begin  If a>Raz-1 then DecToN:=DecToN(a div Raz,Raz)+Rn[(a mod Raz)+1]  else DecToN:=Rn[a+1];end;Function NToDec(a : String; Raz : Byte) : Longint;Begin  If Length(a)>0 then NToDec:=Pos(a[Length(a)],Rn)-1+Raz*NToDec(Copy(a,1,Length(a)-1),Raz)  else NToDec:=0;end;Var a,b : String;Begin  a:='1011'; b:='110';  Writeln('a = ',a,' (bin) = ',NToDec(a,2),' (dec)');  Writeln('b = ',b,' (bin) = ',NToDec(b,2),' (dec)');  Writeln(a+'+'+b+' = ',DecToN(NToDec(a,2)+NToDec(b,2),2),' (bin)  ',NToDec(a,2)+NToDec(b,2),' (dec)');  Writeln(a+'-'+b+' = ',DecToN(NToDec(a,2)-NToDec(b,2),2),' (bin)  ',NToDec(a,2)-NToDec(b,2),' (dec)');  Writeln(a+'*'+b+' = ',DecToN(NToDec(a,2)*NToDec(b,2),2),' (bin)  ',NToDec(a,2)*NToDec(b,2),' (dec)');end.
    • Автор:

      oconnell
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years