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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2010, 02:22   #1
Moneo
Пользователь
 
Регистрация: 21.01.2010
Сообщений: 37
Сообщение Работа с двоичными числами в Delphi

Расскажите пожалуйста как выполняются операции над двоичными числами или дайте ссылки где можно почитать. Интересует : сложение, вычитание, сдвиги и логические операции. И как это лучше делать через массивы или как edit'ы можно.Заранее спасибо.

Последний раз редактировалось Moneo; 22.01.2010 в 02:36.
Moneo вне форума Ответить с цитированием
Старый 22.01.2010, 08:18   #2
Сергeй
Заблокирован
 
Регистрация: 14.01.2010
Сообщений: 92
По умолчанию

a,b,c: Cardinal;

> сложение
c := a + b;

> вычитание
c := a - b;

> сдвиги
c := a shl b;
c := a shr b;

> логические операции
c := a and b;
c := a or b;
c := a xor b;
c := not a;

> как это лучше делать через массивы или как edit'ы
Да как тебе удобней, так и делай.
Нет предела фантазии)
Сергeй вне форума Ответить с цитированием
Старый 22.01.2010, 12:13   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
или как edit'ы
Эдиты не имеют отношения к операциям, это всего лишь компонент ввода\вывода.
Главное ты нужные числа занеси в переменные, над которыми проводи свои операции
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2010, 12:48   #4
начинающий кодер
только учусь!
Форумчанин
 
Аватар для начинающий кодер
 
Регистрация: 08.02.2009
Сообщений: 124
По умолчанию

Почему то всегда думал что тип кардинал относится к десятичным числам а двоичные представляются строкой из 0 и 1?
«Я знаю, что ничего не знаю, но многие не знают и этого».
начинающий кодер вне форума Ответить с цитированием
Старый 22.01.2010, 13:02   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
начинающий кодер
Все они все равно в результате в двоичном виде обрабатываются.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2010, 13:22   #6
Moneo
Пользователь
 
Регистрация: 21.01.2010
Сообщений: 37
Вопрос

Большое вам спасибо. Только вот с Кардиналом я совсем не знаком, как мне взять значения введенные в Edit1.Text и Edit2.Text и присвоить им эти кардинальные переменные: a:=strtocardinal(Edit1.Text) ;

Цитата:
Сообщение от Сергeй Посмотреть сообщение
a,b,c: Cardinal;

> сложение
c := a + b;

> вычитание
c := a - b;

> сдвиги
c := a shl b;
c := a shr b;

> логические операции
c := a and b;
c := a or b;
c := a xor b;
c := not a;

> как это лучше делать через массивы или как edit'ы
Да как тебе удобней, так и делай.
Нет предела фантазии)
А при таком коде разряд будет переносится , то есть двоек не будет?

Последний раз редактировалось Stilet; 22.01.2010 в 13:39.
Moneo вне форума Ответить с цитированием
Старый 22.01.2010, 13:31   #7
Сергeй
Заблокирован
 
Регистрация: 14.01.2010
Сообщений: 92
По умолчанию

> при таком коде разряд будет переносится , то есть двоек не будет?

При КАКОМ коде ?
КУДА переноситься ?

> как мне взять значения введенные в Edit1.Text и Edit2.Text и присвоить им эти кардинальные переменные: a:=strtocardinal(Edit1.Text) ;

Предлагаю не заниматься домыслами и отсебячиной)
Приведи ТЗ дословно в том виде как ты получил его от препода ..

Последний раз редактировалось Stilet; 22.01.2010 в 13:39.
Сергeй вне форума Ответить с цитированием
Старый 22.01.2010, 13:41   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
то есть двоек не будет?
В двоичном коде двоек в разрядах быть не может. Могут быть 0 или 1-ца и только они.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2010, 13:43   #9
Moneo
Пользователь
 
Регистрация: 21.01.2010
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Сергeй Посмотреть сообщение
> при таком коде разряд будет переносится , то есть двоек не будет?

При КАКОМ коде ?
КУДА переноситься ?

> как мне взять значения введенные в Edit1.Text и Edit2.Text и присвоить им эти кардинальные переменные: a:=strtocardinal(Edit1.Text) ;

Предлагаю не заниматься домыслами и отсебячиной)
Приведи ТЗ дословно в том виде как ты получил его от препода ..
Задание: перевести введенные числа в двоичную систему, затем выполнить над ними операции сложения,вычитания,конъюнкция,дизъю нкция, сдвиг и после перевести результат обратно. (операции не сразу все, а выборочно). Я решил это сделать в Delphi с помощью edit'ов, перевел в двоичную, а дальше застопорился.

Цитата:
Сообщение от Stilet Посмотреть сообщение
В двоичном коде двоек в разрядах быть не может. Могут быть 0 или 1-ца и только они.
да я в курсе

Последний раз редактировалось Moneo; 22.01.2010 в 13:47.
Moneo вне форума Ответить с цитированием
Старый 22.01.2010, 13:55   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
перевести введенные числа в двоичную систему
Воу...
Но тут проблема - фраза "перевести введенные числа в двоичную систему" Скорее всего подразумевает перевод в строку из обычного числа, для отображения в двоичной системе. Проблема в том что после перевода в строку нельзя будет делать никаких сдвигов, ибо это уже будет не число...

т.е. тебя нагибают работать со строками?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать класс для работы с двоичными числами в Visual C++ 2008 Maxs Фриланс 1 23.12.2009 21:07
Работа с числами в С++ Mashul'ka Помощь студентам 2 04.11.2009 14:36
Нужна помощь с двоичными числами Rusa85 Помощь студентам 3 03.02.2009 09:01
Работа с числами в delphi Зубоскалик Общие вопросы Delphi 12 28.11.2008 23:37
Работа с числами Drain Общие вопросы Delphi 10 11.02.2008 16:35