Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2016, 19:34   #1
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию Как ввести двоично-десятичный код числа в массив Cи

Добрый день.Возник следующий вопрос: мне нужно ввести с клавиатуры двоично-десятичный код числа, как введенное число занести в массив так,чтобы например,если пользователь ввел 01000001 ,то 0100- был нулевым элементом, 0001-был первым элементом массива?Массив должен быть символьным и ввод без пробелом.Спасибо

Последний раз редактировалось Вероника99; 19.05.2016 в 19:41.
Вероника99 вне форума Ответить с цитированием
Старый 19.05.2016, 20:22   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Массив должен быть символьным
элементы типа char (1 байт)?
Цитата:
если пользователь ввел 01000001 ,то 0100- был нулевым элементом, 0001-был первым элементом массива?
А если юзер ввёл 01234567, тогда чо?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 19.05.2016, 20:31   #3
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Ну ограничение на ввод,я доделаю. А вот как правильно организовать ввод двоично-десятичный кода числа без пробелов, не знаю.Да,символьный. Мне потом каждую тетраду надо будет обрабатывать и тетрада должна быть типом char
Вероника99 вне форума Ответить с цитированием
Старый 19.05.2016, 20:35   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
тетрада должна быть типом char
тогда какому символу соответствует каждая из 16 тетрад?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 19.05.2016, 20:49   #5
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Ситуация такая: элементы массива циклично передаются в функцию (в функцию передается указатель на тип char),которая для каждой тетрады находит десятичный код. Перед этим мне нужно ввести двоично-десятичный код с клавиатуры (без пробелов). И этот введенный код мне и нужно разбить на тетрады и передавать их в функцию. Поэтому я и думала,что нужно получить gets-ом введенный код,потом уже его разбивать на тетрады. Но не могу понять, как его разбить на тетрады,поэтому и спрашиваю.Спасибо
Вероника99 вне форума Ответить с цитированием
Старый 19.05.2016, 20:56   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

ну, раз не хочешь, так и мне не надо.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 19.05.2016, 21:29   #7
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Есть такой код,но когда пытаюсь вывести рр ничего не выводит
Код:
char p;
    char pp[2*20]="";
    int h=0,u=0; /*h  как счётчик бит в тетрадах, а u как индекс массива pp*/
    do
    {
        p=getchar();
 
        if(p='\n') 
           break; /*условие выхода из цикла*/
 
        if( (p<'0') || (p>'1') )
            continue; /*break прервёт цикл ввода, а continue 
                         перейдёт к проверке условия цикла, т.е. код ниже выполнятся не будет - игнорируем "левый" символ*/
 
        if(p=='1')
            pp[u] |= 1;
 
        pp[u] <<= 1;    
        h++; /*бит в элемент массива ввели*/
 
        if(h>3)
          {
            h=0;/*отсчитали 4 бита, которые уже ввели и теперь счётчик обнулили для следующей тетрады*/ 
            u++; /*Перешли к следующему элементу массива*/ 
          }
 
         
      
    }while(1);
Вероника99 вне форума Ответить с цитированием
Старый 19.05.2016, 21:34   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

сюда ходи.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 19.05.2016, 21:39   #9
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Тетрада соответствует одному элементу массива,если вы об этом
Вероника99 вне форума Ответить с цитированием
Старый 19.05.2016, 21:53   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Тетрада соответствует одному элементу массива,если вы об этом
Да не об этом я! Какой символ (char) соответствует каждой тетраде?
Символов char всего 256 штук, а тетрад - 16 жэж. И в реальной жизни 1 char = 2 тетрады (8 бит), ёмаё!!!


Спокойствие, только спокойствие...
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как ввести данные в код - Delphi Бахтияр Оралов Помощь студентам 15 29.02.2016 12:26
код на ассемблере((( Ввести с клавиатуры строку. Преобразовать все буквы в числа. построить криптограмму anna123 Помощь студентам 3 16.12.2012 03:29
Двоично-десятичный код Wanderwayz Помощь студентам 0 08.11.2012 23:26
Ввести массив вещественных чисел NxM для заданной строки массива найти два самых больших числа (на C#) владислав10 Помощь студентам 1 10.04.2011 14:10
как ввести числа с клавиатуры и запомнить их в переменные mandarinka27 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 18.05.2009 17:03