|
Проблема с преобразованиями |
|
|
|
Nov 22 2011, 05:22
|
Местный
  
Группа: Участник
Сообщений: 248
Регистрация: 30-09-11
Пользователь №: 67 474

|
Здравствуйте. Реализую клавиатуру числовую 0-9. Для окончания ввода использую клавишу принятия ввода. Работаю с 1,2,3,4,5 значными цифрами, если введено чило, содержащее более 5 цифр, то ошибка. Как преобразовать из двоично-десятичной формы в двоичную знаю. Но вот как реализовать сохранение группы нажатых цифр в одну переменную 16-битную - вот проблема. Например ввели число 4563, надо чтобы оно было сохранено в 16-битной переменнойи и цифры были сохранены в нужной мне последовательности после нажатия клавиши "accept". Помогите, пожалуйста, в данной проблеме?
|
|
|
|
|
 |
Ответов
|
Nov 22 2011, 09:48
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980

|
Автор, как я понял, хочет получить, допустим, число 468, если ему нажмут кнопки 4, 6, 8.
Берёте одну переменную-накопитель, 16 бит. Инициализируете её нулём. Далее простой алгоритм - нажали какую-то цифру, вы получаете из какого-то сканкода саму цифру, текущий накопитель умножаете на 10 и прибавляете только что введённую цифру. Всё. Плюс контроль, чтобы накопитель не переполнился при очередном умножении. Захотите больше - сделайте накопитель не 16 бит, а 32, 64 .... Классический алгоритм с бородой ....
Зачем тут буфер, накопление n-разрядных кодов в нём и прочие сложности? Потом ведь всё равно этот буфер в число конвертить надо ... Буфер надо, если необходима возможность полного редактирования числа. Да и то - проще не сканкоды в буфер класть, а готовые цифры. Проще и понятнее. У вас же не матрица 105 клавиш от компа?
Сообщение отредактировал hd44780 - Nov 22 2011, 09:56
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
Сообщений в этой теме
max_mart Проблема с преобразованиями Nov 22 2011, 05:22 Navovvol Цитата(max_mart @ Nov 22 2011, 08:22) Здр... Nov 22 2011, 06:21 stells Цитата(max_mart @ Nov 22 2011, 09:22) Пом... Nov 22 2011, 06:27 haker_fox QUOTE (max_mart @ Nov 22 2011, 13:22) Здр... Nov 22 2011, 06:39 Navovvol Можно сделать еще интересней. Допустим диапазон от... Nov 22 2011, 06:40 haker_fox QUOTE (Navovvol @ Nov 22 2011, 14:40) Мож... Nov 22 2011, 06:49 stells так все красиво расписывают: буфер , ОЗУ...
вопро... Nov 22 2011, 06:49 haker_fox QUOTE (stells @ Nov 22 2011, 14:49) так в... Nov 22 2011, 06:57  stells Цитата(haker_fox @ Nov 22 2011, 10:57) Ав... Nov 22 2011, 06:58   haker_fox QUOTE (stells @ Nov 22 2011, 14:58) а по-... Nov 22 2011, 07:05 max_mart Во первых я замарачиваться не стал сделал клаву пр... Nov 22 2011, 07:16 stells Цитата(max_mart @ Nov 22 2011, 11:16) 5 ц... Nov 22 2011, 07:20 max_mart мне нужно число 0-65535. Если мне надо будит больш... Nov 22 2011, 07:34 Navovvol к сожалению я ни черта не понимаю в С/С++ Nov 22 2011, 08:21 haker_fox QUOTE (hd44780 @ Nov 22 2011, 17:48) Буфе... Nov 22 2011, 09:57 max_mart нет не матрица. Всего 9 клавиш.
Я не могу сообраз... Nov 22 2011, 10:10 ut1wpr Цитата(max_mart @ Nov 22 2011, 14:10) нет... Nov 22 2011, 10:49 max_mart Не понял:
зачем умножать на 10 и для чего прибавля... Nov 22 2011, 11:08 hd44780 Цитата(max_mart @ Nov 22 2011, 14:08) зач... Nov 22 2011, 11:39 max_mart ладно подумаю на накопителем. цифр всего 5, а мак... Nov 22 2011, 11:54 ut1wpr Цитата(max_mart @ Nov 22 2011, 15:54) лад... Nov 22 2011, 12:45  neiver Цитата(ut1wpr @ Nov 22 2011, 16:45) Не зн... Nov 22 2011, 14:20   ut1wpr Цитата(neiver @ Nov 22 2011, 18:20) Здесь... Nov 22 2011, 15:11 max_mart [удалено] Nov 22 2011, 14:05 max_mart int GetCodeButton()
{
if (!ZERO)
return 0;
... Nov 22 2011, 15:36 hd44780 Цитата(max_mart @ Nov 22 2011, 18:36) Хот... Nov 22 2011, 17:51 max_mart Хотелось бы узнать какое значение получает функция... Nov 22 2011, 18:31 hd44780 Цитата(max_mart @ Nov 22 2011, 21:31) Как... Nov 22 2011, 18:34 max_mart [quote name='max_mart' date='Nov 22 20... Nov 22 2011, 19:08 haker_fox QUOTE (max_mart @ Nov 22 2011, 15:16) Во ... Nov 23 2011, 04:40 max_mart Конечно!!! Внутренние подтягивающие ре... Nov 23 2011, 05:21 hd44780 hacker_fox, там и резистор не нужен. Нога МК - кно... Nov 23 2011, 05:23 haker_fox QUOTE (hd44780 @ Nov 23 2011, 13:23) hack... Nov 24 2011, 08:57 max_mart С учетом всего выше сказанного реализую это все. н... Nov 23 2011, 09:06 hd44780 Ладно, хотите массив, делайте массив. Тоже верно.
... Nov 23 2011, 13:05 max_mart ))) Извиняюсь!!! Писал в торопях!... Nov 23 2011, 18:03
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|