Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/23: Рейтинг темы: голосов - 23, средняя оценка - 4.78
Fidyum4yk
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 40
1

Функция U32_BIN2BCD()

10.01.2013, 19:25. Просмотров 4127. Ответов 2
Метки нет (Все метки)

Нарыл на просторах интернета функцию, которая якобы переводит число unsykned long int в BCD кодировку методом сдвига. К сожалению описания не было.
Не могу понять что ей надо передать в параметрах.
U32 data - как я понимаю само число.
U8 result_bytes - что тут передаем не понятно?
К примеру хочу передать функцию число 325UL в результате должен получить 0011 0010 0101.
Результат как я понимаю должен быть в самой функции bin2bcd_U32_soft? => return(result);

Код
U32 bin2bcd_U32_soft(U32 data, U8 result_bytes) {
U32 result = 0; /*result*/
for (U8 cnt_bytes=(4 - result_bytes); cnt_bytes; cnt_bytes--) /* adjust input bytes */
data <<= 8;
for (U8 cnt_bits=(result_bytes << 3); cnt_bits; cnt_bits--) { /* bits shift loop */
/*result BCD mybbtis correction*/
result += 0x33333333;
/*result correction loop*/
for (U8 cnt_bytes=4; cnt_bytes; cnt_bytes--) {
U8 corr_byte = result >> 24;
if (!(corr_byte & 0x08)) corr_byte -= 0x03;
if (!(corr_byte & 0x80)) corr_byte -= 0x30;
result <<= 8; /*shift result*/
result += corr_byte; /*set 8 bits of result*/
}
/*shift next bit of input to result*/
result <<= 1;
if (((U8)(data >> 24)) & 0x80)
result |= 1;
data <<= 1;
}
return(result);
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2013, 19:25
Ответы с готовыми решениями:

Перегрузка операций: friend-функция или функция-член класса
Здравствуйте, меня интересует вопрос, в чем разница при перегрузке операторов через operator и...

Функция sqrt: существует более одного экземпляра. Функция перегруженная
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;iomanip&gt; using namespace std; int main(){...

Функция удаления текста в скобках [2], непосредственно функция + 12кб вложений
Доброго времени суток, случилось так, что пришлось работать с с-строками (лаба, угу), в которой...

Какую библиотеку надо подключать чтоб работала функция _getch() и функция cin.get()?
какую библиотеку надо подключать чтоб работала функция _getch() и функция cin.get()

Выясните, сохраняет ли булева функция 0, 1, является ли функция линейной, монотонной, само двойственной?
Помогите пожалуйста!!! Булева функция задана вектором значений F(x)=(1001) Выясните, сохраняет...

2
riptyti
0 / 0 / 0
Регистрация: 06.08.2011
Сообщений: 534
10.01.2013, 19:37 2
result_bytes - количество значимых байт результата (для сокращения количества сдвигов).
для представления 0..99 достаточно 1 байта, ..9999 - 2х, ..999999 - 3х, ..99999999 - 4х.
0
Fidyum4yk
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 40
10.01.2013, 19:43 3
Цитата Сообщение от riptyti
result_bytes - количество значимых байт результата (для сокращения количества сдвигов).
для представления 0..99 достаточно 1 байта, ..9999 - 2х, ..999999 - 3х, ..99999999 - 4х.
спасибо, теперь все понятно. Заработало! )
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2013, 19:43

Функция - Pos(s,s1). Назначение - поиск первого вхождения подстроки s1 в строку s (аналогичная функция C - strstr)
Функция - Pos(s,s1). Назначение - поиск первого вхождения подстроки s1 в строку s (аналогичная...

что за функция такая strstr? или это не функция?
void search(sp *list){ sp *prt = list; char f,r; cout&lt;&lt;Rus(&quot;введите текст&quot;)&lt;&lt;endl; cin&gt;&gt;f;...

Функция нахождения максимума в строке матрицы и функция вычисления ||D||
Помогите написать программу. Заранее спасибо. Даны вещественные матрицы A, B, C размером 5x6....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru