Просмотр этой темы:
1 анонимных пользователей
Главный Технолог
Зарегистрирован:
01.07.2011 19:44 Из: Тольятти
Сообщений:
305
|
Всем привет.
Необходимо преобразовать двоичное 16-битное число(0-65535) в двоично-десятичный код и обратно. помогите, пожалуйста? Может у кого есть библиотеки? Только библиотеки на С надо, а то в инете есть только на асме! Нужно мне это для считывания чисел с клавиатуры(0-9), индикации на экране, отправке 16-битного числа в др. устройство и работа с ним. Считывание 16-битного числа с др. устройства и индикации его на дисплее и работа с ним.
Отправлено: 18.11.2011 10:02
|
|
Модератор
Зарегистрирован:
26.01.2010 23:26 Из: Тирасполь
Сообщений:
3926
|
lcd[4]=((unsigned char)(time_off/10000U))+0x30;
lcd[3]=((unsigned char)((time_off%10000U)/1000U))+0x30; lcd[2]=((unsigned char)(((time_off%10000U)%1000U)/100))+0x30; lcd[1]=((unsigned char)((((time_off%10000U)%1000U)%100)/10))+0x30; lcd[0]=((unsigned char)((((time_off%10000U)%1000U)%100)%10))+0x30;
Отправлено: 18.11.2011 10:18
|
|
Модератор
Зарегистрирован:
26.01.2010 23:26 Из: Тирасполь
Сообщений:
3926
|
Вот тебе медленный и большой код, который разбивает 16-битное число на цифры, преобразовывая их в ASCII коды.
Отправлено: 18.11.2011 10:23
|
|
Главный Технолог
Зарегистрирован:
01.07.2011 19:44 Из: Тольятти
Сообщений:
305
|
А если без ASCII, просто на числа от 0 до 9?Что за переменная time_off(для хранения 16-битного числа)? И обратно как преобразовать в 16-битное число?
Отправлено: 18.11.2011 10:34
|
|
Модератор
Зарегистрирован:
26.01.2010 23:26 Из: Тирасполь
Сообщений:
3926
|
1.Если без ASCII тогда убираешь везде в конце +0x30 .
2.Просто переменная. Назови как угодно. Тип переменной unsigned int 3. lcd[4]*10000U+lcd[3]*1000U+lcd[2]*100+lcd[1]*10+lcd[0]
Отправлено: 18.11.2011 11:08
|
|
Главный Технолог
Зарегистрирован:
01.07.2011 19:44 Из: Тольятти
Сообщений:
305
|
А мне еще надо работать будит не только с 5 значными числами, но 4,3,2 и 1. Напиши, пожалуйста коды. Перевод в двоично-десятичное и обратно.
Отправлено: 18.11.2011 12:14
|
|
Главный Технолог
Зарегистрирован:
01.07.2011 19:44 Из: Тольятти
Сообщений:
305
|
Все разобрался!!! Спасибо большое!!! Сделал!!! Еще вопрос:
Как введенные числа с клавиатура 0-9 будь это 1,2,3,4 или 5 значное число преобразовать к 16 битной переменной(0-65535), т.е. введенные числа с клавиатуры - это есть одно 16 битное число(одна переменная для его хранения)? Помоги, пожалуйста!
Отправлено: 18.11.2011 14:15
|
|
Главный Технолог
Зарегистрирован:
01.07.2011 19:44 Из: Тольятти
Сообщений:
305
|
Дело в том, что я не пойму пока как мне отличить именно те нажатые клавиши для определенного числа (0-65535) и хранение его в 16-битной переменной!
Отправлено: 18.11.2011 16:17
|
|
Модератор
Зарегистрирован:
26.01.2010 23:26 Из: Тирасполь
Сообщений:
3926
|
вводи по цифрам. А потом со второй формулой как я написал
Отправлено: 18.11.2011 23:16
|
|
Главный Технолог
Зарегистрирован:
01.07.2011 19:44 Из: Тольятти
Сообщений:
305
|
это понятно. А сохранять их куда? Вот я нажал например в комбинации 435. Как он отличит, что это именно они и преобразует его. Как отличить что было 3 значное, а не 5 значное число я знаю, а вот как именно отличить, что было именно 435 и в нужной последовательности. Вот в этом и проблема!
Отправлено: 19.11.2011 12:31
|
|