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

Вниз

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

 
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 вся ветка

Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.037 c
14-1100512899
Cosinus
2004-11-15 13:01
2004.12.05
Что то не могу найти LPT-монитор. Может есть у кого грамотный?


1-1100852111
Torin
2004-11-19 11:15
2004.12.05
Чтение/запись строк в поток


14-1100701174
Kein
2004-11-17 17:19
2004.12.05
проблема с Internet Explorer ом


3-1099651871
trafff
2004-11-05 13:51
2004.12.05
Здравствуйте! Подскажите плз, как воспользоваться сортировкой в


1-1100799817
Shark
2004-11-18 20:43
2004.12.05
Интерпритация выражений





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский