Приветствуем на Форум Херсона. Форум Херсонской молодежи.. На данный момент Вы находитесь на форуме как Гость и имеете очень ограниченные возможности и права. Что бы писать или отвечать в темах, загружать картинки, файлы на форуме Вам нужно зарегистрироваться, что совершенно бесплатно. Регистрация очень быстрая, не откладывайте эту процедуру! Если возникнут проблемы с регистрацией напишите нам. |
|
Программирование Все вопросы по написанию программ |
Просмотр темы (Новые вначале) |
29.05.2007 22:53 | ||
Aurum |
Цитата:
юзай сразу упакованую систему мл.декада.рег1= сотни, ст.декада.рег2=десятки, мл.декада.рег2=ед. по пикам я не смогу помочь! но мой алгоритм таков: - число копируешь в перменную и отнимаешь от неё 100(дес)или 0х64, проверяешь остаток, елси есть увеличиваешь сотни на 1 и отнимаешь ешо раз, проверяешь остаток если есть увеличиваешь сотни на 1 - далее отнимаеш сотни раз 100 или 0х64 от числа. -... и так с 10 или 0х0А и с 1 или 0х1...... З.Ы. 1100101 бин это 101 дес ) |
|
28.05.2007 23:35 | ||
Debian |
КАК РАБОТАЕТ, Я НЕЗНАЮ, НО РАБОТАЕТ... HEX_TO_DEC CLRF HUNDERS SWAPF BIN,W ADDWF BIN,W ANDLW B'00001111' SKPNDC ADDLW 0x16 SKPNDC ADDLW 0x16 ADDLW 0x16 SKPNDC ADDLW -0x16 BTFSC BIN,4 ADDLW 0x16 - 1 + 0x6 SKPNDC ADDLW -0x16 BTFSC BIN,5 ADDLW 0x30 BTFSC BIN,6 ADDLW 0x60 BTFSC BIN,7 ADDLW 0x20 ADDLW 0x60 RLF HUNDERS, F BTFSS HUNDERS, 0 ADDLW -0x60 MOVWF TENS_ADN_ONES BTFSC BIN,7 INCF HUNNDERS, F RETURN |
|
28.05.2007 11:00 | ||
D.K. |
>а если есть операции сложения, вычитания, побитного сдвига? дык вот и юзай побитный сдвиг |
|
28.05.2007 10:19 | ||
Debian | а если есть операции сложения, вычитания, побитного сдвига? операций цмножения и деления нет :( так я бы и сам... | |
28.05.2007 00:35 | ||
destiny |
Ну а что тебе собственно мешает разложить на декады в двоичной системе? дели число сначала на 1100100 - получишь сотни сразу в двоичной системе; затем остаток дели на 1010 - получишь десятки; и на конец последний остаток он и есть единицы. PS 106 - это вообщето 1101010 |
|
27.05.2007 23:37 | ||
pingwinator |
имхо - реалтаймово ты никак не сделаеш. да и наиболее оптимален тот алгоритм что я сказал - иначе натяжело будет - т.к. число звисит от каждого бита и тебе всёравно придётся преобразовывать в десятичное чтобы вырезать цифру |
|
27.05.2007 22:42 | ||
Debian | Ну че??? и на этом все? господа програмеры не позоримся) | |
27.05.2007 21:25 | ||
Debian |
нет пин, нет ... вот это настояшее программирование число в двочной системе недо порубить на декады и положить каждую дкаду в свой регистр...положить я смогу, как порубить ненаю :( |
|
27.05.2007 21:16 | ||
pingwinator |
не до конца понимаю о чём речь, но попробую помочь первое что пришло на ум: 1 - преобразовываеш бин число в десятичное 2 - 106 - от каждого числа откусываеш последнюю цифру (челочисленое делени на 10 - дробная часть) |
|
27.05.2007 21:05 | ||
Debian |
Двоичные преобразования В ходе написания программы на АСМЕ возникла вот такаяпроблема преобразования: Допустим у нас есть 8-битный регистр в нем сидит число 01100101, в десятиричной системе это число 106, надо выполнить преобразование числа 01100101 в двоично - десятичный код...тоесть берем 3 регистра 1 - хранит единицы 2 - десятки 3 - сотни а после преобразования у нас 1 регистр должен хранить - 00000110 - 6 2 реистр - 00000000 - 0 3 регистр - 00000001 - 1 собсно каков алгоритм преобразования? |