|
|
 |
Ответов
|
Oct 18 2009, 19:41
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 26-02-09
Пользователь №: 45 406

|
CODE int bcd2dec (int bcd) { int x,y; x = (bcd & 0xf); y = ((bcd & 0xf0)>>4)*10; return x+y; }
Вот что получилось! Отлично работает! А вот с обратным преобразованием как-то не получилось, вот код CODE int dec2bcd (int dec) { int w,x,y; while ( dec >= 10) { dec -=10; w++; } x = dec; y = (w<<4); return y+x; } Что я не так сделал? Я хотя бы правильным путем пошел?
|
|
|
|
|
Oct 18 2009, 20:02
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(Neytrino @ Oct 18 2009, 23:41)  ... Что я не так сделал? Не прочитали статью в википедии, рекомендованную Вам на первой странице треда: Цитата ... При сложении двоично-десятичных чисел каждый раз, когда происходит перенос бита в старший полубайт, необходимо к полубайту, от которого произошёл перенос, добавить корректирующее значение 0110. При сложении двоично-десятичных чисел каждый раз, когда встречается недопустимая для полубайта комбинация, необходимо к каждой недопустимой комбинации добавить корректирующее значение 0110 с разрешением переноса в старшие полубайты. При вычитании двоично-десятичных чисел, для каждого полубайта, получившего заём из старшего полубайта, необходимо провести коррекцию, отняв значение 0110
|
|
|
|
|
Oct 19 2009, 10:16
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 26-02-09
Пользователь №: 45 406

|
Цитата(xemul @ Oct 19 2009, 00:02)  Не прочитали статью в википедии, рекомендованную Вам на первой странице треда: А можно, если конечно не сложно, разжевать это мне, я что-то не совсем понял данной статьи, если быть точнее как производить коррекцию и как вычислить в функции те самые недопустимые комбинации
|
|
|
|
Сообщений в этой теме
Neytrino Помогите разобраться с преобразованиями Oct 12 2009, 09:38 Палыч Цитата(Neytrino @ Oct 12 2009, 12:38) в I... Oct 12 2009, 11:37 Rst7 ЦитатаЕсли нужно делать это быстро, то вычитанием ... Oct 12 2009, 12:16 Neytrino Да, я опрашиваю DS1307 и вывожу значения на LCD на... Oct 12 2009, 12:41 Rst7 ЦитатаДа, я опрашиваю DS1307 и вывожу значения на ... Oct 12 2009, 12:47 Neytrino а что такое bcd? я что-то не совсем понял гугл Oct 12 2009, 13:38 Палыч Цитата(Neytrino @ Oct 12 2009, 16:38) а ч... Oct 12 2009, 14:22 Neytrino CODEint bin2bcd(int v)
{
int out;
int i1;
i1=(... Oct 13 2009, 15:56 rezident Цитата(Neytrino @ Oct 13 2009, 21:56) вот... Oct 13 2009, 17:02 Neytrino Люди, Вы наверное будите смеяться, но у меня снова... Oct 13 2009, 17:22 rezident Конечно бред. Вот код. Может не эстетично, зато де... Oct 13 2009, 21:26 Neytrino странно конечно, но правильно не работает... может... Oct 17 2009, 17:38 rezident Цитата(Neytrino @ Oct 17 2009, 23:38) стр... Oct 17 2009, 18:56 Rst7 Вы бы задачу конкретизировали. А то совсем не ясно... Oct 17 2009, 17:50 Neytrino Простите за глупый вопрос, но как выделить полубай... Oct 17 2009, 19:26 rezident Цитата(Neytrino @ Oct 18 2009, 01:26) Про... Oct 17 2009, 19:33 demiurg_spb Цитата(Neytrino @ Oct 17 2009, 23:26) Про... Oct 18 2009, 06:58 sigmaN ЦитатаЧтобы избежать неоднозначности я использовал... Oct 17 2009, 22:37 rezident Цитата(sigmaN @ Oct 18 2009, 04:37) Я вот... Oct 18 2009, 00:57 Rst7 ЦитатаНу мне надо вывести значения в десятичной си... Oct 18 2009, 07:35 sigmaN ЦитатаДык вы не просто читайте, а еще и в смысл пр... Oct 18 2009, 11:15 Neytrino Цитата(sigmaN @ Oct 18 2009, 15:15) Возьм... Oct 18 2009, 15:44 sigmaN Отлично. Начнем.
Предположим, из порта(или откуда-... Oct 18 2009, 16:25 Neytrino Кажется до меня дошло!!!!!... Oct 18 2009, 17:02   xemul Цитата(Neytrino @ Oct 19 2009, 14:16) А м... Oct 19 2009, 13:43 baralgin Neytrino В функции dec2bcd в глаза бросается неини... Oct 18 2009, 20:31 rezident Цитата(baralgin @ Oct 19 2009, 02:31) rez... Oct 19 2009, 00:08 Neytrino Так, кажется понял буду пробовать, о результатах ... Oct 19 2009, 19:45
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|