Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Побитовое сложение двух чисел, и разложение на составляющие  [new]
ВотЭтоДа
Guest
Извиняюсь за такой вопрос, но есть ли уже подобные функции ? Нужно сложить два типа word (A + B) в 1 integer (R) и в будущем (R) разложить на составляющие A и B
8 июн 18, 18:14    [21479940]     Ответить | Цитировать Сообщить модератору
 Re: Побитовое сложение двух чисел, и разложение на составляющие  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2838
ВотЭтоДа,

в общем случае никак. если биты исходных данных не пересекаются и заранее известны, то сложить можно обычным сложением а разложить по маске с помощью операции and.
8 июн 18, 18:17    [21479949]     Ответить | Цитировать Сообщить модератору
 Re: Побитовое сложение двух чисел, и разложение на составляющие  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10578
R := (A shl 16) or B;
B := R and $FFFF;
A := R shr 16;

или
R := MakeLong(A, B);
B := HiWord(R);
A := LoWord(R);
8 июн 18, 18:26    [21479962]     Ответить | Цитировать Сообщить модератору
 Re: Побитовое сложение двух чисел, и разложение на составляющие  [new]
Dimonka
Member

Откуда:
Сообщений: 1073
ВотЭтоДа
Извиняюсь за такой вопрос, но есть ли уже подобные функции ? Нужно сложить два типа word (A + B) в 1 integer (R) и в будущем (R) разложить на составляющие A и B


Не совсем до конца понятна постановка вопроса, но мне кажется тебе нуже record с case-ом:

type
  TMyInteger = record
  case Integer of
    1: (A: word; B: Word);
    2: (R: integer);
  end;
  end;

И соответственно обращаться

 var MyInteger: TMyInteger;
MyInteger.A := 1;
MyInteger.B := 2;
TwoWords := MyInteger.R
8 июн 18, 18:41    [21479985]     Ответить | Цитировать Сообщить модератору
 Re: Побитовое сложение двух чисел, и разложение на составляющие  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 45919

Dimonka
мне кажется тебе нуже record с case-ом:

И молиться чтобы Дельфи и его поделие никогда не портировали на процессор с другой
раскладкой байт в слове.

Posted via ActualForum NNTP Server 1.5

8 июн 18, 18:47    [21479990]     Ответить | Цитировать Сообщить модератору
 Re: Побитовое сложение двух чисел, и разложение на составляющие  [new]
Dimonka
Member

Откуда:
Сообщений: 1073
Dimitry Sibiryakov
Dimonka
мне кажется тебе нуже record с case-ом:

И молиться чтобы Дельфи и его поделие никогда не портировали на процессор с другой
раскладкой байт в слове.

Молиться не надо, это просто пример. Типы данных можно подобрать ессесно лучше, например word/dword
8 июн 18, 18:52    [21479996]     Ответить | Цитировать Сообщить модератору
 Re: Побитовое сложение двух чисел, и разложение на составляющие  [new]
ВотЭтоДа
Guest
_Vasilisk_,

ВотЭтоДа! Работает как надо! Большое спасибо!
8 июн 18, 18:54    [21479999]     Ответить | Цитировать Сообщить модератору
 Re: Побитовое сложение двух чисел, и разложение на составляющие  [new]
чччД__
Guest
п....ц программист. :(
8 июн 18, 19:34    [21480053]     Ответить | Цитировать Сообщить модератору
 Re: Побитовое сложение двух чисел, и разложение на составляющие  [new]
DesWind
Member

Откуда:
Сообщений: 94
Dimitry Sibiryakov
Dimonka
мне кажется тебе нуже record с case-ом:

И молиться чтобы Дельфи и его поделие никогда не портировали на процессор с другой
раскладкой байт в слове.



А такие еще остались? Единственное где я это встречал "старший-первый" это сигнал Манчестер, ну и протоколы, форматы файлов завязанные на него.
8 июн 18, 19:48    [21480083]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить