Найти разность чисел: 52-28; 14-81. числа представить в двоичной системе счисления, разность найти путем преобразования отрицательного числа в дополнительный код. результат перевести в десятичную систему.
// PascalABC.NET 3.0, сборка 1139 от 10.01.2016 begin var s:=ReadLnString('Вводите:'); s.ToWords.Where(x->x=ReverseString(x)).PrintLn; end.
Тестовое решение: Вводите: дед иван достал наган и пошел с ним в шалаш дед наган и с в шалаш
Вариант, если исключить однобуквенные:
// PascalABC.NET 3.0, сборка 1139 от 10.01.2016 begin var s:=ReadLnString('Вводите:'); s.ToWords.Where(x->x=ReverseString(x)). Where(x->x.Length>1).PrintLn; end.
Тестовое решение: Вводите: дед иван достал наган и пошел с ним в шалаш дед наган шалаш
52 прям.код 0 0110100 (первый ноль знак числа +)
- 28 пр. код 1 0011100 (1 - знак "-")
- 28 об.код 1 1100011 (образуется путем инвертирования)
-28 доп. код 1 1100100 (образуется путем прибавления 1 к младшему разряду обр.кода)
0 0110100 +1 1100100=1 0 0011000 (1 -перенос отбрасывается)
+11000 = 16+8=24 (10)
2) 14 пр.код 0 0001110
-81 пр.код 1 1010001
-81 обр.код 1 0101110
-81доп. код 1 0101111
0 0001110+1 0101111= 1 0111101 это допол.код -67
При переводе в прямой биты результата инвертируются и к младшему разряду + 1
1 1000010+1=1 1000011= - 64+3= - 67