Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.02.01;
Скачать: CL | DM;

Вниз

HexToBinary To Integer - проблема с преобразованием   Найти похожие ветки 

 
koha!   (2008-12-19 17:40) [0]

Парюсь по извлечению из 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; Чего я не допонимаю?


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

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


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


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


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


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

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


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


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


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

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


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

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


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

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


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


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


- а какой?


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

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 19:14) [9]


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


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



Страницы: 1 вся ветка

Текущий архив: 2009.02.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
3-1214028304
lod
2008-06-21 10:05
2009.02.01
Ошибка при открытии таблицы


2-1229535561
smartleds
2008-12-17 20:39
2009.02.01
Ошибка при сохранении файла


2-1229791230
Programmer
2008-12-20 19:40
2009.02.01
Обновление программы, написанной на Делфи самой программой


3-1214040475
Tab
2008-06-21 13:27
2009.02.01
Функция Substring s FireBird


2-1229513471
Leks
2008-12-17 14:31
2009.02.01
SpeedButton со скругленными углами