Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2014, 07:03   #11
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Тоды так
Неа..
1101010 -> 10101010
Ваш : 11010010
Poma][a вне форума Ответить с цитированием
Старый 18.06.2014, 09:10   #12
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Тю, только дошло, что нужно искать третью справа единицу. А я все третью справа позицию мусолил
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.06.2014, 20:44   #13
NoviceYola
Пользователь
 
Регистрация: 09.11.2013
Сообщений: 19
По умолчанию

Поправил то,что мне написали на другом форуме,но нужно исправить,согласно условий выполнения+оформить в виде подпрограмм. p.s. то,что в комментарии я заключил,то мне понятно лишь то,что без этих операции вывод не происходит+нельзя через строку! Понятно,что перевод чисел осуществлялся с помощью строки,но нужно,используя побитовые и алгебраические операции + и -.

Код:
uses crt;
  var k, c, n, n2:longint;
  i:integer;
  s:string;
 begin
 
  write('Число: '); read(n);
     {s:= '';
  n2:=n;}
 
  repeat
    if (n2 and 1)=1 then s:='1'+s else s:= '0'+s;
    n2:=n2 shr 1;
  until n2=0;
  writeln('Число 10-->2: ',s);
 
    repeat
    k:=k+(n and 1); 
     n2:=(n2 shl 1)+(n and 1); 
      c:=c+1;
       n:=n shr 1;
    until (k=3) or (n=0);
 
  if k<3 then writeln('Число не имеет 3-х единиц.')
         else begin  n:=n shl 1; 
 
     while c>0 do begin
       n:=(n shl 1)+(n2 and 1);
       n2:=n2 shr 1;
       c:=c-1;
     end;
  end;
      writeln('Новое число после вставки нуля: ', n);
 
  {s:= '';
  n2:=n;}
  repeat
    if (n2 and 1)=1 then s:='1'+s else s:= '0'+s;
    n2:=n2 shr 1;
  until n2=0;
  write('Новое число после вставки нуля 10-->2: ',s);
 end.

Последний раз редактировалось NoviceYola; 18.06.2014 в 20:45. Причина: Ошибка в слове
NoviceYola вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Побитовые операции V_I_P Общие вопросы C/C++ 5 15.10.2013 22:07
С/С++, ПОБИТОВЫЕ ОПЕРАЦИИ. gopnikdj Помощь студентам 5 25.12.2012 18:29
побитовые операции serega28 Паскаль, Turbo Pascal, PascalABC.NET 11 25.01.2011 14:02
Побитовые операции С++ Defa4ka Помощь студентам 4 22.06.2010 14:55
побитовые операции Александе еть я Общие вопросы C/C++ 2 18.04.2010 13:31