Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 05.01.2013, 00:58
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Чего там разбираться
Код:
procedure TForm1.btnLeftClick(Sender: TObject);
begin
  dec(ShiftBit);
  if ShiftBit < -32 then
    ShiftBit := -32;
  lblShiftBit.Caption := Format(ShiftSt, [ShiftBit]);
  Calculate;
end;

procedure TForm1.btnRightClick(Sender: TObject);
begin
  inc(ShiftBit);
  if ShiftBit > 32 then
    ShiftBit := 32;
  lblShiftBit.Caption := Format(ShiftSt, [ShiftBit]);
  Calculate;
end;

Тогда переводи число в String и работай уже с ним.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #17  
Старый 05.01.2013, 04:46
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Теперь как просили, нули "срезаются".
Вложения
Тип файла: rar cnv.rar (2.8 Кбайт, 6 просмотров)
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #18  
Старый 05.01.2013, 05:30
AVL AVL вне форума
Прохожий
 
Регистрация: 03.01.2013
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
Теперь как просили, нули "срезаются".
Ого, спасибо!
Теперь "Обратный порядок байт" работает как надо.
К утру вообще "конфетка" получится
Или который сейчас у вас час?
У меня 3.30 ночи...

Последний раз редактировалось AVL, 05.01.2013 в 05:44.
Ответить с цитированием
  #19  
Старый 05.01.2013, 05:42
AVL AVL вне форума
Прохожий
 
Регистрация: 03.01.2013
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
Теперь как просили, нули "срезаются".
Но не всё так хорошо оказалось, при более тщательном тестировании.
Кальк переусердствует и теперь срезает нули спереди и сзади.
Вводя 3 байтовое число получаейм 2-х байтовое.
Пример:
40 E2 01 - "ОПБ" - 1Е 24.
Ответить с цитированием
  #20  
Старый 05.01.2013, 11:51
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,097
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Мне вот, честно, просто интересно. ТС решил просто тестером подработать или все-таки сам будет код писать?
Ответить с цитированием
  #21  
Старый 05.01.2013, 14:53
AVL AVL вне форума
Прохожий
 
Регистрация: 03.01.2013
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Мне вот, честно, просто интересно. ТС решил просто тестером подработать или все-таки сам будет код писать?
Вот проделанная мною работа: http://www.delphisources.ru/forum/sh...5&postcount=14
И, поверьте, радости моей не было предела.

Последний раз редактировалось AVL, 06.01.2013 в 02:23.
Ответить с цитированием
  #22  
Старый 06.01.2013, 01:44
AVL AVL вне форума
Прохожий
 
Регистрация: 03.01.2013
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Мне вот, честно, просто интересно. ТС решил просто тестером подработать или все-таки сам будет код писать?
Специально для Вас, честно, не из праздного интереса, а науки ради, написал калькулятор для обмена валюты.
Вложения
Тип файла: rar Project1.rar (159.6 Кбайт, 2 просмотров)
Ответить с цитированием
  #23  
Старый 06.01.2013, 02:36
AVL AVL вне форума
Прохожий
 
Регистрация: 03.01.2013
Сообщения: 13
Репутация: 10
По умолчанию

angvelem, добавьте, пожалуйста, комментов в Ваш текст, а то мне таки трудно разобраться. Про АСМ я вообще молчу.
Я понимаю, что Вам есть чем и без меня заняться, но если сможете выкроить время, как говорится
Спасибо!
Ответить с цитированием
  #24  
Старый 06.01.2013, 02:40
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Что неясно, какие строки прокомментировать?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #25  
Старый 06.01.2013, 03:00
AVL AVL вне форума
Прохожий
 
Регистрация: 03.01.2013
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
Что неясно, какие строки прокомментировать?
По Calculate.
Как в блок-схеме работает эта процедура.
Как организован пересчёт данных которые выдаются в окна.
Не как конкретно считаются данные в конкретном окне, а как это в принципе, в общем реализовано.
Примерно такой вопрос.
Ответить с цитированием
  #26  
Старый 06.01.2013, 03:10
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Как то так
Код:
  // Сдвиг
  if ShiftBit <> 0 then
    if ShiftBit < 0 then
      Src := Src shl Abs(ShiftBit)                      // сдвигаем влево на ShiftBit
    else
      Src := Src shr ShiftBit;                          // сдвигаем вправо на ShiftBit

  // Обратный порядок байт
  if CheckBox1.Checked then
  asm
    mov   eax, Src                                      // Загрузить число в аккумулятор
    bswap eax                                           // перевести
    mov   Src, eax                                      // сохранить
  end;

  // Переставить байты
  if CheckBox2.Checked then
  asm
    mov   eax, Src                                      // Загрузить число в аккумулятор
    xchg  al, ah                                        // обменять байты
    ror   eax, 16                                       // вращать на 16 бит
    xchg  al, ah                                        // обменять байты
    ror   eax, 16                                       // вращать на 16 бит
    mov   Src, eax                                      // сохранить
  end;

  // Переставить полубайты
  if CheckBox3.Checked then
  asm
    mov   ecx, 4                                        // счётчик
    mov   eax, Src                                      // Загрузить число в аккумулятор
@_loop:
    ror   al, 4                                         // вращать al на 4 бита
    ror   eax, 8                                        // вращать eax на 8 бит
    loop  @_loop                                        // крутим счётчик
    mov   Src, eax                                      // сохранить
  end;

  // Обратный порядок бит в байтах
  if CheckBox4.Checked then
  asm
    mov eax, Src                                        // Загрузить число в аккумулятор
    xor edx, edx                                        // обнулить edx
    mov ecx, 32                                         // счётчик
@:
    rcr eax, 1                                          // >> выдвигаем крайний бит в CARRY
    rcl edx, 1                                          // << задвигаем из CARRY в крайний бит результата
    loop @, ecx                                         // крутим счётчик
    mov Src, edx                                        // сохранить
  end;

  // Инвертировать
  if CheckBox5.Checked then
  begin
  end;

  // XOR by
  if CheckBox6.Checked and (edtMask.Text <> '') then
  begin
    Mask := HexToDec(edtMask.Text);                     // получаем маску
    Src := Src xor Mask;                                // применяем к числу
  end;

  // удаляем лишние 0
  St := IntToHex(Src, SrcLen);
  if (Length(St) > SrcLen) and (St[Length(St)] = '0') then
    while (Length(St) > SrcLen) and (St[Length(St)] = '0') do
      SetLength(St, Length(St) - 1);
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:29.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025