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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2011, 19:43   #1
Neonch
 
Регистрация: 04.05.2011
Сообщений: 9
По умолчанию Двоичные числа в Паскале

Подскажите как в Паскале проводить действия над двоичными числами, мы ещё в колледже не изучали, дали самостоятельно сделать задачу, долго мучаюсь, не получается.
Вот задачка в Паскале:

Два двоичных числа а и b задаются как бинарные последовательности в форме нультерминальных строк с неопределённой заранее длиной. Требуется получить результаты 5-ти арифметических действий над целыми числами. а+b
а-b
а*b
а div b
a mod b
Neonch вне форума Ответить с цитированием
Старый 04.05.2011, 20:20   #2
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Код:
function strtobin(str:string):integer;
var i:interger;
result:=0;
for i:=length(str) downto 1 do
   if str[i]= '1' then result:=result+1* power(2,length(str)-i);
end;
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 04.05.2011, 20:22   #3
Neonch
 
Регистрация: 04.05.2011
Сообщений: 9
По умолчанию

Спасибо огромное, я так понимаю нультерминальные строки, это когда на 0 заканчивается?
Neonch вне форума Ответить с цитированием
Старый 04.05.2011, 20:26   #4
Neonch
 
Регистрация: 04.05.2011
Сообщений: 9
По умолчанию

strtobin это просто название функции?
Neonch вне форума Ответить с цитированием
Старый 04.05.2011, 20:28   #5
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

извини у мня обычные
Код:

function strtobin(str:pchar):integer;
var i:interger;
result:=0;
for i:=strlen(str)-1 downto 1 do
   if str[i]= '1' then result:=result+1* power(2,strlen(str)-1-i);
end;
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 04.05.2011, 22:05   #6
Neonch
 
Регистрация: 04.05.2011
Сообщений: 9
По умолчанию

Вот моё начало решения, не понимаю сути этой задачи.
Program st;
var a,b,c,s,v,u,d:integer;
begin
writeln('wwedite a');
readln(a);
writeln('wwedite b');
readln(b);
c:=a-b;
s:=a*b;
v:=a div b;
u:=a mod b;
writeln('c=', c);
writeln('s=', s);
writeln('v=',v);
writeln('u=', u);
end.
Neonch вне форума Ответить с цитированием
Старый 05.05.2011, 11:38   #7
Biggs
Пользователь
 
Регистрация: 15.07.2010
Сообщений: 74
По умолчанию

Получаешь число в двоичной форме ( как строку переводишь в десятичную) , потом выполняешь операции
Алгоритм перевода -строка s, она же массив символов s[]
Тогда цикл по всем значениям i от нуля до длины строки минус один( i индекс массива)

Число =s[i]*2^(i)+Число
Biggs вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двоичные числа и полиморфизм nikozavr Visual C++ 0 24.03.2011 18:46
Двоичные числа в Delphi tonatas Общие вопросы Delphi 2 18.09.2010 07:03
Вычислить:у=а*(в*в*в)*с,где а,в,с-двоичные числа.Для хранения числа использ.массив! Таняпервокурсница Помощь студентам 4 04.06.2010 12:08
Двоичные числа systemmind Общие вопросы C/C++ 2 28.10.2009 15:06
Двоичные и шестнадцатеричные числа Rembo Помощь студентам 9 13.11.2007 19:08