Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
RFxDiesel
0 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 7
#1

Перевод десятичного числа в двоично-десятичную систему счисления - C (СИ)

25.04.2014, 10:11. Просмотров 1329. Ответов 10
Метки нет (Все метки)

Разработать программу, выполняющую перевод десятичного числа в двоично-десятичную систему.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2014, 10:11
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Перевод десятичного числа в двоично-десятичную систему счисления (C (СИ)):

Как максимально просто перевести байт из двоично-десятичной в десятичную систему счисления - C (СИ)
Всем привет в си я не силен , пот столкнулся с проблемой. Приходит мне байт в двоично десятичной системе. Как максимально просто перевести...

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

Перевод из двоичной в десятичную систему счисления - C (СИ)
Помогите с переводом из двоичной в восьмеричную систему счисления. Проверку по алфавиту можно отбросить. Интересует вариант разбития на...

Перевод из двоичной в десятичную систему счисления - C (СИ)
Нужно перевести число любой длины из двоичной в десятичную и чтобы после завершения перевода можно было опять вводить числа, а если число...

Перевод числа s из b-чной системы счисления в десятичную - C (СИ)
Задано целое число b - основание системы счисления от 2 до 16 и строка s - число записанное в b-чной системе счисления. Напишите...

Перевод числа из двоичной системы счисления в десятичную - C (СИ)
Вот пример : void main(void) { unsigned char data = 10000000; unsigned char data2= 00000010; unsigned char PORTA; ...

10
Catstail
Модератор
23498 / 11606 / 1893
Регистрация: 12.02.2012
Сообщений: 18,948
25.04.2014, 15:04 #2
А как представлять двоично-десятичное число?
0
RFxDiesel
0 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 7
25.04.2014, 17:47  [ТС] #3
Ну, не совсем понял вопроса, могу сказать примером
3927 = 0011 1001 0010 0111
0
d_shablov
0 / 0 / 0
Регистрация: 25.04.2014
Сообщений: 3
25.04.2014, 18:23 #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
30
31
32
33
34
35
#include <iostream>
int main()
{   
   int n;
   std::cin >> n;
   string bin_num;
   while(n != 0)
   {
       int tmp = n % 10;
       n = n / 10;
       string part_bin_num = "0000";
       if (tmp & 0x1000)
       {
           part_bin_num[0] =  '1';
       }
       if (tmp & 0x0100)
       {
           part_bin_num[1] =  '1';
       }
       if (tmp & 0x0010)
       {
           part_bin_num[2] =  '1';
       }
       if (tmp & 0x0001)
       {
           part_bin_num[3] =  '1';
       }
       bin_num += part_bin_num;
   }
   for (int i = bin_num.length() - 1; i >= 3; i -= 4)
   {
       std::cout << bin_num[i - 3] << bin_num[i - 2] << bin_num[i - 1] << bin_num[i] << ' ';
   }
   return 0;
}
0
Catstail
Модератор
23498 / 11606 / 1893
Регистрация: 12.02.2012
Сообщений: 18,948
25.04.2014, 18:54 #5
Или так:

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
 
void toDec(int n)
{   
    int d;
    if (n == 0) return;
    toDec(n/10);
    d=n%10;
    switch (d)
    {
        case 0:
            printf("0000 ");
            break;
        case 1:
            printf("0001 ");
            break;
        case 2:
            printf("0010 ");
            break;
        case 3:
            printf("0011 ");
            break;
        case 4:
            printf("0100 ");
            break;
        case 5:
            printf("0101 ");
            break;
        case 6:
            printf("0110 ");
            break;
        case 7:
            printf("0111 ");
            break;
        case 8:
            printf("1000 ");
            break;
        case 9:
            printf("1001 ");
    }
}
 
int main(int argc, char* argv[])
{
    int n=3927;
    toDec(n);
    return 0;
}
2
RFxDiesel
0 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 7
25.04.2014, 19:12  [ТС] #6
Спасибо большое))
последнее, на сколько понял, просто как алфавит делаем, а потом можно вводить что угодно? (если вместо n=3297 сделать ввод числа)
0
Catstail
Модератор
23498 / 11606 / 1893
Регистрация: 12.02.2012
Сообщений: 18,948
25.04.2014, 19:25 #7
Цитата Сообщение от RFxDiesel Посмотреть сообщение
(если вместо n=3297 сделать ввод числа)
- совершенно верно!
0
gng
686 / 532 / 141
Регистрация: 08.09.2013
Сообщений: 1,413
25.04.2014, 20:42 #8
Похожий вариант
C
1
2
3
4
5
6
7
void bindec ( int n) {
  if (!n) return;
  bindec (n/10);
  int i;
  for (i= 3; i>=0; i--) printf ("%d", ((n % 10)>>i) & 1);
  printf (" ");
}
1
MrActiveSync
1 / 1 / 1
Регистрация: 27.02.2014
Сообщений: 48
26.04.2014, 16:30 #9
прошу прощение, а как сделать чтобы отображалось только первые восемь бит?
например, число 121,это 01111001, а в программе отображаеться это - 0001 0010 0001
0
easybudda
Модератор
Эксперт CЭксперт С++
10020 / 5943 / 1004
Регистрация: 25.07.2009
Сообщений: 11,230
26.04.2014, 17:42 #10
Цитата Сообщение от RFxDiesel Посмотреть сообщение
3927 = 0011 1001 0010 0111
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
30
#include <stdio.h>
 
const char DECADE[10][5] = {
    "0000",
    "0001",
    "0010",
    "0011",
    "0100",
    "0101",
    "0110",
    "0111",
    "1000",
    "1001",
};
 
void decbin(unsigned n) {
    if ( n ) {
        decbin(n / 10);
        printf("%s ", DECADE[n % 10]);
    }
}
 
int main(void) {
    unsigned n;
    
    while ( printf("\nNumber: ") && scanf("%u", &n) == 1 && n )
        decbin(n);
    
    return 0;
}
0
gng
686 / 532 / 141
Регистрация: 08.09.2013
Сообщений: 1,413
26.04.2014, 21:17 #11
Цитата Сообщение от MrActiveSync Посмотреть сообщение
например, число 121,это 01111001
C
1
2
3
4
5
6
7
int main()
{
  int n, i;
  scanf ("%d", &n);
  for (i= 7; i>=0; i--) printf ("%d", (n>>i) & 1);
  printf ("\n");
}
1
26.04.2014, 21:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2014, 21:17
Привет! Вот еще темы с ответами:

Перевод числа из любой системы счисления в десятичную - C (СИ)
Вроде бы и написал прогу, а все равно косяки выдает. Программа переводит число из любой СС в десятичную. #include &lt;stdio.h&gt; ...

Перевод из двоичной в двоично-десятичную СС - C (СИ)
Помогите пожалуйста написать программу для перевода чисел из двоичной системы в двоично-десятичную систему счисления.Пытаюсь уже,и ничего...

Перевод из двоично-десятичной СС в десятичную - C (СИ)
Надо реализовать собственой функцией, при недопустимой комбинации функция должна вернуть -1 Компилятору не нравиться вот етот кусок int...

Перевод числа в 16-ричную систему счисления - C (СИ)
целое десятичное трёхзначное число надо перевести в 16ричную систему счисления как это сделать? есть ли стандартные функции для этого? ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru