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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2007, 21:28   #1
AliG
 
Регистрация: 13.03.2007
Сообщений: 3
По умолчанию РЕбята задали побитовые операции...

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

1)написать программу которая обнуляет n-ый бит переменной K типа ворд.значение К и N вводятся пользователем.
2) написать прогу которая в переменно йтипа ворд меняет порядок бит на обратный (старший становится младшим и наоборот
3) написать прогр которая преобразует целое число в строку,являющуюся представлением этого числа в N-ичной системе счисления где N от 2 до 10
4) написать прогр которая преобразует строку являющуюся представлением числа в N-ичной сист счисления в целое число .N может быть от 2 до 10.


просьба напишите как можно проще я дуб)))в паскале на данный момент
AliG вне форума Ответить с цитированием
Старый 13.03.2007, 22:46   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Это случаем не ассемблер?

Как ты себе представляешь двигать биты в паскале?

Просветите пожалуйста, может я не в курсе.

Цитата:
3) написать прогр которая преобразует целое число в строку,являющуюся представлением этого числа в N-ичной системе счисления где N от 2 до 10
Как это понять?
Alar вне форума Ответить с цитированием
Старый 13.03.2007, 22:57   #3
AliG
 
Регистрация: 13.03.2007
Сообщений: 3
По умолчанию

нам препод говорил что можно использовать операции сдвига- shr ы shl

например 10101011
shl
получаем 01010110
тоесть справа вылазиет нолик а слева пропадает
и еще использовать логические операции типа or xor and not и тп.

и чтобы обнулить как будто надо взять единицу подвинуть её на N разрядов(shl)и отрицание (not) потом перемножаем с исходным числом. Nый бит обнуляется остальные остаются в порядке....вроде так мне обьясняли...

(1 shl N) and K
тип того

циклический сдвиг не работает- нельзя одной операцией сделать в паскале...

ну не знаю что там еще он говорил (препод) чтото...буду молчать))) ато еще не того написал)

а про 3 задание как я понял в строку записано число это число надо преобразовать в числ тип а потом перевести в заданную систему счисления...походу в строку записывается в 10чной с с число. может через орд преобразовывать а потом домножить на 10 в степени разряда и сложить получится в десятичной. а потом как в 4 прогр перевести в другую с счисления

только написать бы всё ето....((( и почему паскаль так плохо в школе преподавали ..точнее совсем не давали
AliG вне форума Ответить с цитированием
Старый 14.03.2007, 22:22   #4
Malice
Пользователь
 
Регистрация: 28.01.2007
Сообщений: 27
По умолчанию

1)
k:=not(1 shl n) and k;
2)
n:=0;
while k>0 do begin
n:=n shl 1 or (k and 1);
k:=k shr 1;
end;
результат в n.
3) и 4) вообще ерунда - обычные ToHex, FromHex, только основание вводить самому..
Malice вне форума Ответить с цитированием
Старый 14.03.2007, 23:35   #5
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

http://www.delphibasics.ru/Str.php - вот это работать со строкой...

Это делфи справочник, но в Паскале работает также.
Alar вне форума Ответить с цитированием
Старый 15.03.2007, 19:45   #6
AliG
 
Регистрация: 13.03.2007
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Malice Посмотреть сообщение
1)
k:=not(1 shl n) and k;
2)
n:=0;
while k>0 do begin
n:=n shl 1 or (k and 1);
k:=k shr 1;
end;
результат в n.
3) и 4) вообще ерунда - обычные ToHex, FromHex, только основание вводить самому..

ToHex, FromHex сказано быо нам что нельзя использовать
AliG вне форума Ответить с цитированием
Старый 15.03.2007, 20:08   #7
Malice
Пользователь
 
Регистрация: 28.01.2007
Сообщений: 27
По умолчанию

Цитата:
Сообщение от AliG Посмотреть сообщение
ToHex, FromHex сказано быо нам что нельзя использовать
Это понятно, я имел ввиду их то написать не проблема.. Вот так я раньше делал:
из любой в 10-ную:
Код:
function from_(s:string;ss:byte):longint;
var q:longint;
begin
q:=0;
for i:=1 to length(s) do begin
s[i]:=char(ord(s[i]) or 32);
case s[i] of
'0'..'9': q:=q*ss+byte(s[i])-ord('0');
'a'..'z': q:=q*ss+byte(s[i])-ord('a')+10;
end; end;
from_:=q;
end;
И обратно:
Код:
 
function to_(q:longint;ss:byte):string;
var s:string;
i:longint;
begin
s:='';
repeat
i:=q-trunc(q/ss)*ss;
if i>9 then i:=i+ord('A')-ord('9')-1;
s:=chr(i+ord('0'))+s;
q:=trunc(q/ss);
until q=0;
to_:=s;
end;
Malice вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Битовые операции DrAlexx2121 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 14.06.2008 22:26
Битовые операции LEX.darnica Помощь студентам 14 23.12.2007 19:40
Задали написать отладчик на ассемблере RUSty Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 24.11.2007 19:15
Операции над данными yulia БД в Delphi 24 21.05.2007 01:18