Показать сообщение отдельно
Старый 19.12.2011, 11:27   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Да, интересно. Что-то и не соображу, как с такими жесткими ограничениями вывернуться.
Цитата:
Сообщение от Танюшка 1991 Посмотреть сообщение
Задано целое число без знака (тип word). Распечатайте содержимое битов заданного числа.
Это-то можно, только вот биты будут идти в обратном порядке, т.е. возрастание разрядов идет слева направо, а не справа налево, как обычно:
Код:
VAR
 x,y:Word;
BEGIN
 Write('x= ');
 Readln(x);
 Repeat
  y:=x Shr 1;
  y:=y Shl 1;
  Write(x-y);
  x:=x Shr 1;
 Until x=0;
 Readln;
END.
А вот как их в нормальном порядке выстроить... То есть можно, скажем, так:
Код:
VAR
 x,y:Word;
 t:Byte;
 z,m:LongInt;
BEGIN
 Write('x= ');
 Readln(x);
 m:=1;
 z:=0;
 Repeat
  y:=x Shr 1;
  y:=y Shl 1;
  t:=x-y;
  z:=z+t*m;
  x:=x Shr 1;
  m:=m*10;
 Until x=0;
 Writeln(z);
 Readln;
END.
Но, боюсь, что это выйдет за пределы ограничений...
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070