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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2009, 19:46   #1
TOSAgrk
Пользователь
 
Регистрация: 01.02.2009
Сообщений: 13
По умолчанию битовые операции, Pascal

используя только битовые операции написать функцию которая меняет местами соседние группы из четырех битов в заданном беззнаковом длинном целом числе.

вот что я набросал:


uses crt, math;
var Nfirst, Ntemp, Ntemp1, Nfirst1, Nfirst2:longint;
binary:string;
i,j,p,q,w,e,r:integer;


begin
clrscr;
writeln ('Vvedit''4uslo');
readln (Nfirst);
writeln;
writeln;
writeln ('Zadane 4uslo ', Nfirst);
Nfirst1:= Nfirst;
Nfirst2:= Nfirst;
for i:= 1 to 32 do
begin
Ntemp := Nfirst div 2;
j:= Nfirst mod 2;
Nfirst:= Ntemp;
write(j);
end;




for q:=1 to 4 do
begin
p:= Nfirst1 shl 4;
{begin
p:= Nfirst1 shr 4;
end;}
end;


for q:= 5 to 8 do
begin
p:= Nfirst1 shr 4;
end;

{ for q:=17 to 20 do
begin
p:= Nfirst1 shr 4;
end;

for q:=25 to 28 do
begin
p:= Nfirst1 shr 4;
end;

for q:=5 to 8 do
begin
p:=Nfirst2 shl 4;
end;

for q:=13 to 16 do
begin
p:=Nfirst2 shl 4;
end;

for q:=21 to 24 do
begin
p:=Nfirst2 shl 4;
end;

for q:=29 to 32 do
begin
p:=Nfirst2 shl 4;
end};

writeln;
writeln;
writeln ('P= ' ,p );
for e:=1 to 32 do
begin
Ntemp1:=p div 2;
r:= p mod 2;
p:= Ntemp1;
write (r );
end;
readln;
end.

что не так ???
TOSAgrk вне форума Ответить с цитированием
Старый 02.02.2009, 11:09   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,547
По умолчанию

Цитата:
используя только битовые операции написать функцию которая меняет местами соседние группы из четырех битов в заданном беззнаковом длинном целом числе.
Честно, недопонял задание. Что есть беззнаковое длинное целое, LongWord? В Turbo Pascal такого типа нет.
Далее, допустим, мы имеет переменную LongWord, состоящую из 8 четвёрок бит:
B7B6 B5B4 B3B2 B1B0
Что значит поменять местами соседние группы из 4 бит? Получить такое:
B6B7 B4B5 B2B3 B0B1
Но ведь B2 и B1 тоже являются соседними.
Arigato вне форума Ответить с цитированием
Старый 02.02.2009, 17:41   #3
TOSAgrk
Пользователь
 
Регистрация: 01.02.2009
Сообщений: 13
По умолчанию

http://forum.developing.ru/showthrea...4106#post64106

вот здесь мне уже решили задачку. можете глянуть.
TOSAgrk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Битовые операции DrAlexx2121 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 14.06.2008 22:26
Строковые операции (Virtual Pascal) Vitek220 Помощь студентам 1 02.05.2008 18:11
Битовые операции LEX.darnica Помощь студентам 14 23.12.2007 19:40
Битовые операции zetrix Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 15.12.2006 11:08