![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Алгоритм - как выделить число
uny © (2004-11-22 10:15:00)имеется 16 битное BCD число, в котором дата (4 цифры) = месяц и число месяца. как можно преобразовать данное число в виду = число месяца и месяц. т.е. поменять местами байты в BCD числе.
проблема в том, что сделать это нужно используя только умножение и сложение, и только один раз -
т.е. (данное число BCD)*(коэффициент постоянный)+(какое то число постоянное) = (нужное число BCD)
можно хотя бы по частям - отдельно получить месяц и отдельно число месяца
TUser (2004-11-23 10:36:00) [1]
> но тогда "A=B+D" почему не "A=B*С+D"
Согласен, ошибся
C*(A*x+B)+D=A+B*x =>
B=A*C V A=B*С+D =>
A=A*C^2+D =>
D=A*(1-C^2)=A*(1-C)*(1+C)
> Ваше решение поддерживает вариант что коэффициенты забиваются
> один раз - просто как числа и действуют на все любые числа
> BCD?
Для каждого C можно найти D, такое, что преобразование, затребованное в [0] будет выполняться.
PS. По причине ламеризма своего, я, если честно, не в курсе, что такое числа BCD. Будет интересно узнать, с чем их едят.
uny (2004-11-23 08:06:00) [2]TUser © (22.11.04 16:07) [6]
честно говоря я не смог разобраться в выкладках -
вторая строчка это Вы приравниваете значения при "x"?
но тогда "A=B+D" почему не "A=B*С+D"
Ваше решение поддерживает вариант что коэффициенты забиваются один раз - просто как числа и действуют на все любые числа BCD?
TUser (2004-11-22 16:07:00) [3]Так?
C*(A*x+B)+D=A+B*x =>
B=A*C V A=B+D =>
A=A*C+D =>
D=A*(1-C)
MBo (2004-11-22 16:07:00) [4]>up
Ну и зачем этот ап без дополнительной информации?
uny (2004-11-22 15:53:00) [5]up
uny (2004-11-22 11:18:00) [6][5] MBo © (22.11.04 10:57)
это панель, она отображает, больше ничего нет. сейчас "готовлю" для неё дату, хотелось поэкономить память контроллера и сделать силами панели
MBo (2004-11-22 10:57:00) [7]> умножить можно и прибавить
Использованием только этих операций,кажется, нельзя обойтись.
Битовые операции есть? (and,or, shl/r)
>(это не комп).
Уточни. возможно, есть операция обмена регистров?
uny (2004-11-22 10:43:00) [8][1] MBo © (22.11.04 10:18)
нет. такой функции нет. есть только как описано - умножить можно и прибавить(это не комп). числа BCD разные, а коэффициенты определяются один раз...
MBo (2004-11-22 10:18:00) [9]функция Swap не уcтроит?