Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как перенести 3 байта в переменую 
:(
    Опции темы
andrewr
Дата 2.11.2007, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 16.2.2006

Репутация: нет
Всего: нет



есть
Код

var
 buf:array [1..3] of byte;
 x:dword;
begin
 buf[1]:=33;
 buf[2]:=22;
 buf[3]:=11;



надо вытащить значения с buf[1..3] в обратном порядке и поместить в х. тоесть на исходе:
x:=112233;

Спасиба!
PM MAIL   Вверх
andrewr
Дата 2.11.2007, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 16.2.2006

Репутация: нет
Всего: нет



Код

function reverse_array(buf:array of byte; len:integer):integer;
var
  i:integer;
  s:string;
begin
  for i:=len-1 downto 0 do
    s:=s+inttohex(buf[i],2);
  result:=strtoint(s);
end;


тупое решение но всеже работает, если есть лутче напишите пожалуста.

Это сообщение отредактировал(а) andrewr - 2.11.2007, 23:11
PM MAIL   Вверх
ivan219
  Дата 3.11.2007, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 5
Всего: 12



PM MAIL ICQ   Вверх
skyboy
Дата 3.11.2007, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



andrewr, в каждом байте хранится число до 255. значит, если мы размещаем в памяти три байта(со значениями 11, 22 и 33) последовательно, то имеем не 112233(так в десятиричной системе счисления), а (11*256+22)*256+33=726561. точно также, как если в word разместить подряд два байта значением в 255, то получится FFFFh, что равно 65535, а не 255255.
значит твою логику по "склеиванию" чисел можно сделать только через объединение строк. преобразуешь каждое число в строку и соединяешь их вместе.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.