Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

HexToBinary To Integer - проблема с преобразованием


koha! ©   (2008-12-19 17:40:00) 

Парюсь по извлечению из hex-кодировки числа через бинарные данные


var
  temp,: string;
  I: integer;
  buf: array of char;

begin

//первый способ:
 temp:='000000ff';
 b := 0;
 setlength(buf,length(temp) div 2);
 HexToBin(PChar(temp),Pointer(buf), length(temp) div 2);
 mm.Lines.Add('Buf = '+IntToStr(integer(buf)));

//второй способ:
 HexToBin(PChar(temp),Pointer(@I), length(temp) div 2);
 mm.Lines.Add('Buf = '+IntToStr(I);


В любом случае не правильно возвращает значение
как в этом случае правильно преобразовать бинарные данные в число I: integer; Чего я не допонимаю?


koha!   (2008-12-19 19:14:00) [1]


> Медвежонок Пятачок ©   (19.12.08 18:57) [8]


впоне доходчиво, сенкс..


Медвежонок Пятачок   (2008-12-19 18:57:00) [2]

var v,i : integer; pb : pByte; cStrInt,cStr : string;
begin
v := 7;
cStrInt := IntToHex(v,8);
pb := @v; cStr := '';
for i := 1 to 4 do
 begin
  cStr := cStr + IntToHex(pb^,2);
  Inc(pb);
 end;
ShowMessage(cStrInt + #13#10 + cStr);
end;


koha!   (2008-12-19 18:53:00) [3]


> Медвежонок Пятачок ©   (19.12.08 18:50) [6]
> а может порядок байт интегера не такой как ты ожидаешь?


- а какой?


Медвежонок Пятачок   (2008-12-19 18:50:00) [4]

а может порядок байт интегера не такой как ты ожидаешь?


koha!   (2008-12-19 18:46:00) [5]

возможно смещения нехватает какого-то?


koha!   (2008-12-19 18:42:00) [6]


> Медвежонок Пятачок ©   (19.12.08 18:13) [3]
> и что? отладчик украли ?


Да украли..., угу, и с пециально сигналы из космоса послали, что бы я сюда пошел и спросил...

И что в отладике я должен увидеть был? он там байты возвращает в таком прорядке, например число 7 hex: 00000007 = [0][0][0][7]
но при приведении типа Iinteger([0][0][0][7]) <> 7 вот и вопрос почему в каком порядке байты должны быть?


Медвежонок Пятачок   (2008-12-19 18:13:00) [7]

и что? отладчик украли ?


koha!   (2008-12-19 18:03:00) [8]


> Медвежонок Пятачок ©   (19.12.08 17:59) [1]


про это я знал, но мне нужно в том способе разобраться - это принципиально.


Медвежонок Пятачок   (2008-12-19 17:59:00) [9]

Caption := IntToStr(StrToInt('$FFFFFFFF'));


Наверх

Титульная страница Поиск, карта сайта Написать письмо