Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
5 / 5 / 5
Регистрация: 16.12.2013
Сообщений: 463
1

Как ввести двоично-десятичный код числа в массив

19.05.2016, 19:40. Показов 1997. Ответов 5
Метки нет (Все метки)

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

Добавлено через 23 минуты
Массив должен быть символьным и ввод без пробелом
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2016, 19:40
Ответы с готовыми решениями:

Перевод десятичного числа в двоично-десятичный код с использованием функции
Нужна программа для перевода десятичного числа в двоично-десятичный код, с использованием функции!...

Перевод числа в двоично-десятичный код
Есть задание: Сформировать массив из 10 однобайтных чисел, перевести их в двоично-десятичный код,...

Преобразовать двоичный код в двоично-десятичный код (Intel 8051)
Прочитать с порта Р0 один байт двоичного кода 8-4-2-1, превратить его в двоично-десятичный код и...

Перевод двоичного в двоично-десятичный код
Здравствуйте, необходимо перевести двоичный код в двоично-десятичный. Много раз пробовал , ничего...

5
590 / 413 / 135
Регистрация: 02.10.2008
Сообщений: 1,745
Записей в блоге: 1
19.05.2016, 20:05 2
1. Читаем посимвольно через getchar() пока не встретим '\n'
2. сразу игнорируем всё что не равно '1' или '0'
3. Если считанный символ 1, то байт_массива |= 1
4. байт_массива <<=1 (сдвиг влево)
5. Как только насчитали 4 символа переходим к следующему байту массива...
0
5 / 5 / 5
Регистрация: 16.12.2013
Сообщений: 463
19.05.2016, 20:28  [ТС] 3
А как перейти на следующий байт массива?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
char p;
    char pp[2*20]="";
    int h=0,u=0;
    do
    {
        p=getchar();
        if( (p<'0') || (p>'1') )
            break;
        if(p=='1')
        {
            pp|=1;
            pp<<=1;
            h++;
        }
             putchar(p);
        u++;
    }while(p!='\n');
0
590 / 413 / 135
Регистрация: 02.10.2008
Сообщений: 1,745
Записей в блоге: 1
19.05.2016, 20:46 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Совсем не рабочее - подправлю:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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);
0
5 / 5 / 5
Регистрация: 16.12.2013
Сообщений: 463
19.05.2016, 23:48  [ТС] 5
Я ввожу например 00010100. Потом пытаюсь вывести массив рр
C
1
puts(pp);
но ничего не выводится. Что это значит?

Добавлено через 2 часа 49 минут
Подскажите плиз,почему же все таки массив пустой?
0
590 / 413 / 135
Регистрация: 02.10.2008
Сообщений: 1,745
Записей в блоге: 1
20.05.2016, 18:23 6
Массив не пустой - он содержит байты, введёные с клавиатуры, а не символы.

Или я не правильно понял задание.
0
20.05.2016, 18:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2016, 18:23
Помогаю со студенческими работами здесь

Алгоритм преобразования двоичного в двоично-десятичный код
Добрый день! Передо мной стоит задача реализовать на VHDL это устройство. Я вроде не нуб в учёбе,...

Перевод числа из двоичного формата в двоично-десятичный
Подскажите как переводить числа из одного формата в другой.

AHDL. Двоично-десятичный секундомер
Здравствуйте! Помогите пожалуйста разработать схему в AHDL двоично-десятичного секундомера. ...

Двоично-десятичный таймер минут. AHDL
если кто-то вдруг знает,понимает, то надо разработать на AHDL схему двоично-десятичного таймера...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru