реклама на сайте
подробности

 
 
> Перевод WORD в строчный WORD или INT, Функции или библиотеки
Aldec
сообщение Mar 3 2017, 05:22
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 160
Регистрация: 21-06-16
Пользователь №: 92 272



Подскажите библиотеки или функции что то в плане BCDTODEC для перевода WORD или INT в строчный WORD т.е. 1250 в 1,2,5.0


Сообщение отредактировал Aldec - Mar 3 2017, 19:31
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Aldec
сообщение Mar 7 2017, 07:18
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 160
Регистрация: 21-06-16
Пользователь №: 92 272



Вроде раздел средства разработки и вопрос в общем в каком компиляторе есть функции или готовые процедуры конвертирования DWORD в int array[ ]



Сообщение отредактировал Aldec - Mar 7 2017, 07:44
Go to the top of the page
 
+Quote Post
Obam
сообщение Mar 7 2017, 08:04
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Цитата(Aldec @ Mar 7 2017, 11:18) *
Вроде раздел средства разработки и вопрос в общем в каком компиляторе есть функции или готовые процедуры конвертирования DWORD в int array[ ]

http://cppstudio.com/post/389

Вторая страница пошла (я понимаю, форуму хорошо - реклама-шрэклама…), куда катится этот мир (;
http://publ.lib.ru/ARCHIVES/Z/ZLOBIN_Vladi...cessorah.(1991).[djv-fax].zip

Ну и совсем по-пионэрски:
CODE

void BIN_TO_BCD (uint32_t* bcd)
//==============================================================================
// Подпрограмма преобразования 64-х разрядного двоичного (BIN) числа в
// упакованный двоично-десятичный (BCD) формат.
//==============================================================================
#define _tetrad_mask (0x0000000Fu)
#define _tetrad_lmt (0x00000004u)
#define _tetrad_crrctn (0x00000003u)
{
uint32_t shift_rg[5] = {bcd[0], bcd[1], 0, 0, 0},
i = 0x00000040,// счетчик цикла по входному регистру
t, t_l, t_c;
int32_t j;// счетчик цикла по тетрадам BCD-регистра
do {
j = 0x0000001C;
do {
t = (_tetrad_mask << j);
t_l = (_tetrad_lmt << j);
t_c = (_tetrad_crrctn << j);
if ((shift_rg[2] & t) > t_l) {
shift_rg[2] = shift_rg[2] + t_c;
};
if ((shift_rg[3] & t) > t_l) {
shift_rg[3] = shift_rg[3] + t_c;
};
if ((shift_rg[4] & t) > t_l) {
shift_rg[4] = shift_rg[4] + t_c;
};
j =j - 4;
} while (j >= 0);

shift_rg[4] = shift_rg[4] << 1;
if (shift_rg[3] & 0x80000000) {
shift_rg[4] = (shift_rg[4] | 0x00000001);
};
shift_rg[3] = shift_rg[3] << 1;
if (shift_rg[2] & 0x80000000) {
shift_rg[3] = (shift_rg[3] | 0x00000001);
};
shift_rg[2] = shift_rg[2] << 1;
if (shift_rg[1] & 0x80000000) {
shift_rg[2] = (shift_rg[2] | 0x00000001);
};
shift_rg[1] = shift_rg[1] << 1;
if (shift_rg[0] & 0x80000000) {
shift_rg[1] = (shift_rg[1] | 0x00000001);
};
shift_rg[0] = shift_rg[0] << 1;

i = i - 1;
} while (i != 0);

bcd[2] = shift_rg[2];
bcd[3] = shift_rg[3];
bcd[4] = shift_rg[4];
}


//Определили, к примеру:
uint32_t BnrCdDcmls[5];

//Задали:
BnrCdDcmls[0] = младшие_32_разряда;
BnrCdDcmls[1] = старшие_32_разряда;
//Вызвали:
BIN_TO_BCD ((uint32_t*)&BnrCdDcmls);
//Получили: с BnrCdDcmls[2] по BnrCdDcmls[4] тетрадами (это по 4 бита - если слово незнакомое) двоично-десятичное представление;
//ну и уж дальше рассортируете.

Чесслово, за время треда уже и книжку бы прочитали и первый вариант кода проверить успели бы…


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
Aldec
сообщение Mar 8 2017, 08:11
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 160
Регистрация: 21-06-16
Пользователь №: 92 272



Вы имеете ввиду что в каком то x86 МК есть аппаратный конвертер

Цитата(Obam @ Mar 7 2017, 08:04) *
//Получили: с BnrCdDcmls[2] по BnrCdDcmls[4] тетрадами (это по 4 бита - если слово незнакомое) двоично-десятичное представление;

На выходе конвертации должен быть как минимум полубайт десятых или сотых десятичного значения например

1111 на выходе 0001 и 0101 т.е 15 ковертируется INT [1,5]
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Aldec   Перевод WORD в строчный WORD или INT   Mar 3 2017, 05:22
- - novikovfb   в чем именно должен заключаться перевод? Что значи...   Mar 3 2017, 06:16
- - krux   покажите sizeof(word) и sizeof(int) на вашей платф...   Mar 3 2017, 14:20
- - Aldec   Под переводом в INT имеется ввиду конвертация в с...   Mar 6 2017, 09:33
|- - scifi   sprintf() А вообще задачка уровня средней школы, к...   Mar 6 2017, 09:55
|- - hsoft   Цитата(Aldec @ Mar 6 2017, 09:33) Под пер...   Mar 6 2017, 10:43
- - ViKo   Керниган и Ричи в своей книжке дали пример.   Mar 6 2017, 11:18
- - Сергей Борщ   Вы не поняли - это все для слабых! Еще и книжк...   Mar 6 2017, 11:31
|- - scifi   Цитата(Сергей Борщ @ Mar 6 2017, 14:31) В...   Mar 6 2017, 11:52
- - Эдди   Я не понял, что ТСу надо? Вот это что ли (аналог p...   Mar 6 2017, 14:54
- - Aldec   Нужно конвертировать четырехзначное число в массив...   Mar 6 2017, 15:17
- - Эдди   Что такое MODF? Что такое WORD? Почему нельзя сраз...   Mar 6 2017, 15:57
|- - novikovfb   Цитата(Эдди @ Mar 6 2017, 19:57) Что тако...   Mar 6 2017, 16:56
|- - Grizzzly   Цитата(Эдди @ Mar 6 2017, 18:57) Что тако...   Mar 6 2017, 17:44
- - Эдди   Очень круто: начал ТС с каких-то int, а в итоге fl...   Mar 6 2017, 20:34
|- - Сергей Борщ   QUOTE (Aldec @ Mar 7 2017, 09:18) в каком...   Mar 7 2017, 07:21
|- - Сергей Борщ   QUOTE (Obam @ Mar 7 2017, 10:04) //Опреде...   Mar 7 2017, 08:45
||- - Obam   Цитата(Сергей Борщ @ Mar 7 2017, 12:45) В...   Mar 7 2017, 09:19
- - Aldec   Упоминание MODF и других функций только для намека...   Mar 7 2017, 10:21
|- - scifi   Цитата(Aldec @ Mar 7 2017, 13:21) Упомина...   Mar 7 2017, 10:26
- - Obam   "Понесли кроссовки Митю...". Не знаю в к...   Mar 8 2017, 10:17
- - Aldec   Вам покажется странным но в Си, инициализация масс...   Mar 8 2017, 12:50
|- - Obam   Цитата(Aldec @ Mar 8 2017, 16:50) Вам пок...   Mar 8 2017, 14:36
|- - Сергей Борщ   QUOTE (Aldec @ Mar 8 2017, 14:50) т.е. о...   Mar 8 2017, 14:58
- - Aldec   Да раздел про МК а также "How-to, тонкости р...   Mar 8 2017, 19:38
|- - SSerge   Цитата(Aldec @ Mar 9 2017, 02:38) ... во...   Mar 9 2017, 06:50
- - Aldec   Там не совсем ясно какой конвертер круче, на деле...   Mar 20 2017, 11:23


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 04:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01411 секунд с 7
ELECTRONIX ©2004-2016