Easyelectronics.ru

Электроника для всех
Текущее время: 18 июн 2018, 16:26

Часовой пояс: UTC + 5 часов



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: сложение и вычитание двоично-десятичных чисел
СообщениеДобавлено: 04 мар 2018, 20:28 
Только пришел

Зарегистрирован: 26 фев 2018, 03:06
Сообщения: 20
Уважаемые гуру , на просторах сайта наткнулся на статью Преобразуем в строку. Часть 1. Целые числа.
заинтересовала функция сложения упакованных двоично-десятичных чисел с хитрым побитовым колдовством :)
Код:
static uint32_t bcd_add(uint32_t a, uint32_t b)
{
/*1*/    uint32_t carry = b + 0x66666666ul;
/*2*/    carry ^= (a + carry) ^ a;
/*3*/    a += b;
/*4*/    carry &= 0x11111111ul;
/*5*/    carry >>= 2;
/*6*/    a += carry;
/*7*/    carry >>= 1;
/*8*/    a += carry;
    return a;
}

вопрос как это переделать для функции вычитания?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: сложение и вычитание двоично-десятичных чисел
СообщениеДобавлено: 04 мар 2018, 23:08 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2435
Откуда: Санкт-Петербург
http://homepage.divms.uiowa.edu/~jones/bcd/bcd.html
Хотя нафига вам bcd - не понимаю. Проще (и, как правило, быстрее) преобразовывать двоичное в десятичное при выводе на экран.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: сложение и вычитание двоично-десятичных чисел
СообщениеДобавлено: 04 мар 2018, 23:13 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 1814
Как помню, практически все микросхемы RTC, которые встречал, имели как раз BCD-представление и передавали именно в этом формате.
Ну а вычитание заменяется сложением с отрицательным числом


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: сложение и вычитание двоично-десятичных чисел
СообщениеДобавлено: 04 мар 2018, 23:21 
Только пришел

Зарегистрирован: 26 фев 2018, 03:06
Сообщения: 20
спб.
для работы с таймером упакованным в структуру
Код:
struct time_type{
   unsigned  secL  :4;
   unsigned  secH  :4;
   unsigned  minL  :4;
   unsigned  minH  :4;
   unsigned  hourL :4;
   unsigned  hourH :4;   
   }timer_work,timer_set;
сейчас для настройки сделан инкремент/декремент с шагом 1мин , нужно переделать на шаг 15сек.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: сложение и вычитание двоично-десятичных чисел
СообщениеДобавлено: 05 мар 2018, 01:47 
Старожил
Аватара пользователя

Зарегистрирован: 11 авг 2016, 20:52
Сообщения: 567
Откуда: GMT+6
Show Я опять изобрел велосипед


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: сложение и вычитание двоично-десятичных чисел
СообщениеДобавлено: 05 мар 2018, 04:17 
Только пришел

Зарегистрирован: 26 фев 2018, 03:06
Сообщения: 20
спасибо, Вам добрый человек


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: mazahakka v2.0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB