|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.02.2009, 16:18 | #1 |
Новичок
Джуниор
Регистрация: 27.02.2009
Сообщений: 2
|
Програмка по выделению и замене байтов
Помогли написать вот такую вот програмулину.
Состоит из нескольких частей: 1. В Edit1 вводится десятичное число от 2*10 ^9 до 3*10 ^9, при на жании на Button 1 происходят такие действия: в Edit2 появляется введенное 10-ое число только в 2сс, в Edit3 выделяется 3-ий байт двоичного числа, в Edit4 выделенный 3-ий байт переводится в 10сс. 2.После нажатия Button2 в Edit5 появляется введенное в Edit1 10-ое число только в 2сс, в Edit6 отображается 10 число выполнения операции выделения 3-его байта из Edit5 и замены им 2 и 1 байта Как подругому можно наисать эту програмку. И как втавить ассемблерную вставку в этот код. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Math; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; Edit3: TEdit; Button2: TButton; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private function IntToBin(dec: int64): string; //Функция перевода десятичного числа в двоичное function BinToInt(Value: string): int64; //функция перевода двоичного в десятичное { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var str:string; begin str:=IntToBin(strtoint64(Edit1.Text )); //перевод десятичного числа в двоичное с помощью самописной функции IntToBin Edit2.Text:=str; //Отображение двоичного числа в Edit2 Edit3.Text:=Copy(str,9,8); //3-й байт двоичного числа Edit4.Text:= inttostr(BinToInt(Edit3.Text)); //перевод 3-го байта в десятичное end; {--------------------------------------------------------------------------------} function TForm1.IntToBin(Dec: int64): string; //Собственно и есть самописная функция перевода десятичного числа в двоичное var del: int64; size: Integer; str:string; begin Result:=''; str:=''; del:=dec; While (del div 2)<>0 do begin str:=str+inttostr(del mod 2); del:=(del div 2); end; str:=str+'1'; size:=Length(str); while size>0 do begin Result:=Result+copy(str,size,1); size:=size-1; end; end; {--------------------------------------------------------------------------------} function TForm1.BinToInt(Value: String): int64 ; //Собственно и есть самописная функция перевода двоичного числа в десятичное var i:integer; begin i:=1; Result:=0; while not(i>Length(Value)) do begin if copy(Value,i,1)='1' then Result:=Result+strtoint64(Floattost r(IntPower(2,(Length(Value))-i))) ; i:=i+1; end; end; {--------------------------------------------------------------------------------} procedure TForm1.Button2Click(Sender: TObject); var str:string; begin str:=IntToBin(strtoint64(Edit1.Text )); //перевод десятичного числа в двоичное с помощью самописной функции IntToBin Edit5.Text:=Copy(str,1,8)+Copy(str, 9,8)+Copy(str,9,8)+Copy(str,9,8); //Замена в исходном числе 2 и 1 байты 3им и перевести полученное число в 10 сс Edit6.Text:= inttostr(BinToInt(Edit5.Text)); //перевод в десятичное end; end. |
28.02.2009, 00:00 | #2 |
Новичок
Джуниор
Регистрация: 27.02.2009
Сообщений: 2
|
Очень нужно. Помогите плз.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужна програмка | romanukk | Фриланс | 5 | 19.02.2009 09:23 |
извлечение битов из байтов... | WinApi | Помощь студентам | 4 | 10.11.2008 15:14 |
Нужен макрос Excel по поиску и замене | Михалыч01 | Microsoft Office Excel | 2 | 06.11.2008 18:03 |
Строка символов в виде байтов | Blondinka | Общие вопросы Delphi | 17 | 14.09.2007 19:06 |
прога по замене текста | alex89bb | Общие вопросы Delphi | 6 | 27.01.2007 16:09 |