Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.02.01;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
3-1213875860
PSV
2008-06-19 15:44
2009.02.01
ADO (странное поведение)


2-1229428657
1991
2008-12-16 14:57
2009.02.01
Оптимизация


2-1229501340
charoey_mag
2008-12-17 11:09
2009.02.01
Работа с Unicode


2-1229527656
Tatb9na
2008-12-17 18:27
2009.02.01
Графики


15-1222413251
Василий Жогарев
2008-09-26 11:14
2009.02.01
PostgreSQL, MySQL, IB, FB





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский