Вниз
Скачать: CL | DM;

Алгоритм - как выделить число   Найти похожие ветки 

← →
uny ©   (2004-11-22 10:15) [0]

имеется 16 битное BCD число, в котором дата (4 цифры) = месяц и число месяца. как можно преобразовать данное число в виду = число месяца и месяц. т.е. поменять местами байты в BCD числе.

проблема в том, что сделать это нужно используя только умножение и сложение, и только один раз -
т.е. (данное число BCD)*(коэффициент постоянный)+(какое то число постоянное) = (нужное число BCD)
можно хотя бы по частям - отдельно получить месяц и отдельно число месяца


← →
MBo ©   (2004-11-22 10:18) [1]

функция Swap не уcтроит?


← →
uny ©   (2004-11-22 10:43) [2]

[1] MBo ©   (22.11.04 10:18)
нет. такой функции нет. есть только как описано - умножить можно и прибавить(это не комп). числа BCD разные, а коэффициенты определяются один раз...


← →
MBo ©   (2004-11-22 10:57) [3]

> умножить можно и прибавить
Использованием только этих операций,кажется, нельзя обойтись.
Битовые операции есть? (and,or, shl/r)

>(это не комп).
Уточни. возможно, есть операция обмена регистров?


← →
uny ©   (2004-11-22 11:18) [4]

[5] MBo ©   (22.11.04 10:57)
это панель, она отображает, больше ничего нет. сейчас "готовлю" для неё дату, хотелось поэкономить память контроллера и сделать силами панели


← →
uny ©   (2004-11-22 15:53) [5]

up


← →
TUser ©   (2004-11-22 16:07) [6]

Так?
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) [7]

>up
Ну и зачем этот ап без дополнительной информации?


← →
uny ©   (2004-11-23 08:06) [8]

TUser ©   (22.11.04 16:07) [6]
честно говоря я не смог разобраться в выкладках -
вторая строчка это Вы приравниваете значения при "x"?
но тогда "A=B+D" почему не "A=B*С+D"

Ваше решение поддерживает вариант что коэффициенты забиваются один раз - просто как числа и действуют на все любые числа BCD?


← →
TUser ©   (2004-11-23 10:36) [9]


> но тогда "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. Будет интересно узнать, с чем их едят.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
3-1099496320
DimonNew
2004-11-03 18:38
2004.12.05
Упорядочить по подстановочному полю


14-1100700493
Eugenez
2004-11-17 17:08
2004.12.05
GUID decode ???


3-1099672832
Danila
2004-11-05 19:40
2004.12.05
Счётчик в Interbase - как?


3-1099831137
Apophis
2004-11-07 15:38
2004.12.05
Отчет через MSWord


1-1101032493
PoUlerer
2004-11-21 13:21
2004.12.05
Menu




   Наверх