Как ввести двоично-десятичный код числа в массив - C (СИ)

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Как ввести двоично-десятичный код числа в массив»

textual
Листинг программы
char p;
    char pp[2*20]="";
    int h=0,u=0; /*h буду использовать как счётчик бит в тетрадах, а u как индекс массива pp*/
    do
    {
        p=getchar();
 
        if(p='\n') 
           break; /*условие выхода из цикла, фактически я переделал do while в цикл while*/
 
        if( (p<'0') || (p>'1') )
            continue; /*break прервёт цикл ввода, а continue 
                         перейдёт к проверке условия цикла, т.е. код ниже выполнятся не будет - игнорируем "левый" символ*/
 
        if(p=='1')
            pp[u] |= 1;
 
        pp[u] <<= 1;    /*а '0' вводить?*/
        h++; /*бит в элемент массива ввели*/
 
        if(h>3)
          {
            h=0;/*отсчитали 4 бита, которые уже ввели и теперь счётчик обнулили для следующей тетрады*/ 
            u++; /*Перешли к следующему элементу массива*/ 
          }
 
         putchar(p); /*зачем это непонятно*/
      
    }while(1);

Объяснение кода листинга программы

В этом коде:

  1. Объявлены две переменные: p и pp.
    • p является символом, который считывается из стандартного ввода.
    • pp - это массив символов, используемый для хранения двоичного представления вводимого числа.
  2. Инициализированы две переменные: h и u.
    • h используется как счетчик битов в тетрадах (группах из четырех битов).
    • u используется как индекс массива pp.
  3. В цикле do-while считывается символ из стандартного ввода. Если этот символ является символом новой строки (\n), то цикл прерывается.
  4. Если считанный символ не является цифрой от '0' до '1', то он игнорируется с помощью оператора continue.
  5. Если считанный символ является '1', то соответствующий бит в текущем элементе массива pp устанавливается в 1.
  6. Значение элемента массива pp сдвигается вправо на 1 бит.
  7. Увеличивается счетчик h на 1, указывая, что бит был введен.
  8. Если h больше 3, это означает, что введена четверка битов, поэтому счетчик h сбрасывается до 0, а счетчик u увеличивается на 1, переходя к следующему элементу массива.
  9. Считанный символ выводится на стандартный вывод с помощью putchar(). Возможно, это сделано для проверки введенных данных.
  10. Цикл продолжается до тех пор, пока символ не будет считан (т.е. пока do условие истинно).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы