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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2009, 13:56   #1
Toten
Новичок
Джуниор
 
Регистрация: 06.03.2009
Сообщений: 2
Восклицание работа в двоичной системе

есть задание : на форму поместить 2 едита и одну кнопку (Button),
1)в Edit1 ввести число то 2 млрд до 3 млрд
а кнопки запрограммировать так что бы введенное число в Edit1 перевилось в двоичную систему,1 байт этого числа проинвертировался (замена 0 на 1 ,а 1 на 0)
2)в Edit2 должно появиться число в десятичной системе но так что у него вместо 1 проинвертированного байта был бы 3 байт этого числа а вместо 3 - 1 проинвертированный байт
Вот пример:2.220.220.220-->10000100.01010101.11011111.0011110 0-->10000100.01010101.11011111.1100001 1(инвертированный 1 байт) -->10000100.11000011.11011111.0101010 1(замена им на 3,а 3 на 1)-->2227429205
у меня получилось выполнить 1 часть этого задания т.е. проинвертировать 1 байт, а вот как заменить байты местами я так и не понeл !!
вот код который у мене есть :


procedure TForm1.Button1Click(Sender: TObject);
var n1,n2:int64;
begin
n1:=StrToInt64(Edit1.Text);
n2:=n1 xor $000000FF;
Edit2.Text:=IntToStr(n2);
end;
Toten вне форума Ответить с цитированием
Старый 06.03.2009, 14:29   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну если я правильно понял из всего непонятного то:
Код:
var a:array[1..4] of byte;i:integer;b:byte;
begin
i:=2220220220;
move(i,a,4);// Дробим на байты
b:=a[1];a[1]:=a[3];a[3]:=b;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.03.2009, 15:25   #3
Toten
Новичок
Джуниор
 
Регистрация: 06.03.2009
Сообщений: 2
По умолчанию

что то у мене она не работает у мене на выходе 60 а должно быть 2227429205 но попробую твой код модифицировать


Если кто нить ещё какие нибудь варианты решения видит то просьба написать !!!!
Toten вне форума Ответить с цитированием
Старый 06.03.2009, 16:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
у мене на выходе 60 а должно быть 2227429205
А это потому чо я чистым целым оперирую, а ты строко якобы она целое.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с модемом: Узнать подключен модем к системе или нет Никки Общие вопросы Delphi 0 24.11.2008 10:55
Как записать число в двоичной форме? Stellvertreter Общие вопросы C/C++ 2 16.10.2008 22:35
Работа по написанию скрипта по системе Ucoz rpg Фриланс 6 06.02.2008 20:28
Пожалуйста помогите отобразить файл в двоичной форме в МЕМО opex007 Общие вопросы Delphi 3 20.09.2007 09:51
Деление чисел в двоичной системе счисления Mss_Smith Помощь студентам 9 04.05.2007 17:02