Понедельник, 21.07.2025, 17:23
Hiasm
Главная | Изменение компонента BitsToInt - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Изменение компонента BitsToInt
SVHДата: Вторник, 20.05.2008, 04:44 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 2
Репутация: 0
Статус: Нет на сайте
В HiAsm версии 3.65b168 есть компонент BitsToInt, который не правильно переводит биты в число. Обращаю внимание что данная проблема относиться к компилятору FPC!
Вот код этого компонента:
Code
unit hiBitsToInt;

interface

uses windows,Kol,Share,Debug;

type
    THIBitsToInt = class(TDebug)
     private
      FCount:word;
      procedure SetCount(Value:integer);
     public
       Bit:array of THI_Event;

      _event_onNumber:THI_Event;

      procedure _work_doNumber(var _Data:TData; Index:word);
      procedure _var_Number(var _Data:TData; Index:word);
      property _prop_Count:integer write SetCount;
    end;

implementation

procedure THIBitsToInt._work_doNumber;
begin
     _var_Number(_Data,0);
     _hi_CreateEvent_(_Data,@_event_onNumber);
end;

procedure THIBitsToInt._var_Number;
var i:integer;val:real;
begin
     val := 0;
     for i := 0 to FCount-1 do
       val := val/2 + byte(ReadInteger(_Data,Bit[i]) <> 0);
     val := val*intPower(2,FCount-1);
     if val<=MAXDWORD then
       dtInteger(_Data,Round(val))
     else dtReal(_Data,val);
end;

procedure THIBitsToInt.SetCount;
begin
     FCount := Value;
     SetLength(Bit,Value);
end;

end.

Пример для испытаний могу выложить, если найду как biggrin .


Курс молодого бойца, HiAsm!?

Сообщение отредактировал SVH - Вторник, 20.05.2008, 22:58
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025