![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Wolfram |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 1 Регистрация: 8.9.2009 Город: Россия Вы: студент ![]() |
Дано задание:
Циклически сдвинуть двоичные разряды числа на одну позицию вправо. Вот код программы, я только кое-что исправил в нем. Код uses crt; function pow2(A:byte):Integer; var result: Integer; i: Integer; begin result := 1; for i:=1 to A do result := result * 2; pow2 := result; end; procedure Print_binary (d: word); var mask: word; i: 1..16; begin mask:=$8000; for i:=1 to 16 do begin if d and mask=0 then write (0) else write (1); mask:=mask shr 1; end; writeln; writeln; end; function cyclicShiftRight(number: word; cyclicBitsRight: byte):word; var mask :Integer; x,y :word; begin cyclicBitsRight := cyclicBitsRight mod 16; mask := pow2(16) - pow2(16 - cyclicBitsRight); y := number and mask; y := x shl (16 - cyclicBitsRight); x := number shr cyclicBitsRight; cyclicShiftRight := y or x; end; Var a,c: word; begin clrscr; a:=55555; write ('a = '); Print_binary (a); c:= cyclicShiftRight(a, 1); write ('a = '); Print_binary (c); readln; end. Вроде бы правильно решено. Просят объяснить назначение процедуры и функций. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 19:48 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru