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

 
 
 
Reply to this topicStart new topic
> Глупый вопрос
MMP
сообщение May 8 2006, 13:42
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 43
Регистрация: 7-07-05
Из: г.Магнитогорск
Пользователь №: 6 618



Подскажите как преобразовать десятичное число(скажем 50) в шестнадцатеричное, но не 0х32(как оно должно быть), в 0х50.
Go to the top of the page
 
+Quote Post
ps1x
сообщение May 8 2006, 13:54
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Цитата(MMP @ May 8 2006, 17:42) *
Подскажите как преобразовать десятичное число(скажем 50) в шестнадцатеричное, но не 0х32(как оно должно быть), в 0х50.


Действительно странный вопрос (dec) 50=0x32 (hex) и этого не изменить. Оно никак не должно быть 0х50.... glare.gif

А вообще хоть калькулятором в виндовс (инженерный режим)
Go to the top of the page
 
+Quote Post
IEC
сообщение May 8 2006, 13:55
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598



Это называется двоично-десятичный формат чисел. Ищи по форуму. Недавно давался алгоритм преобразования.
Go to the top of the page
 
+Quote Post
ps1x
сообщение May 8 2006, 13:57
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Цитата(IEC @ May 8 2006, 17:55) *
Это называется двоично-десятичный формат чисел. Ищи по форуму. Недавно давался алгоритм преобразования.

bb-offtopic.gif
Ого, я и не знал о таком даже...
Go to the top of the page
 
+Quote Post
Pat
сообщение May 8 2006, 14:02
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 27-05-05
Из: Энергодар
Пользователь №: 5 480



Цитата(MMP @ May 8 2006, 15:42) *
Подскажите как преобразовать десятичное число(скажем 50) в шестнадцатеричное, но не 0х32(как оно должно быть), в 0х50.

Только наверное надо получить не шестнадцатеричное, а двоично-десятичное число (BCD формат).
Функция преобразует числа в диапазоне от 0 до 99.
unsigned char DEC_BCD(unsigned char val)
{
unsigned char t;
t = val / 10;
val = val - (t * 10);
t <<= 4;
t = t | val;
return t;
}
Go to the top of the page
 
+Quote Post
INT1
сообщение May 8 2006, 15:37
Сообщение #6


deleted
****

Группа: Свой
Сообщений: 555
Регистрация: 28-08-05
Пользователь №: 8 024



преобразование BIN -> BCD подробно описано:
http://www.atmel.ru/Articles/Atmel13.htm
Go to the top of the page
 
+Quote Post
MMP
сообщение May 9 2006, 03:54
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 43
Регистрация: 7-07-05
Из: г.Магнитогорск
Пользователь №: 6 618



[/quote]
Только наверное надо получить не шестнадцатеричное, а двоично-десятичное число (BCD формат).
Функция преобразует числа в диапазоне от 0 до 99.
unsigned char DEC_BCD(unsigned char val)
{
unsigned char t;
t = val / 10;
val = val - (t * 10);
t <<= 4;
t = t | val;
return t;
}
[/quote]

Большое спасибо вот - это то что надо
Go to the top of the page
 
+Quote Post
IEC
сообщение May 10 2006, 10:54
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598



Только проконтролируй длительность выполения данной функции по времени. Может быть придётся переписать деление на вычитание!
Go to the top of the page
 
+Quote Post

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

 


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


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