Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/40: Рейтинг темы: голосов - 40, средняя оценка - 4.90
2 / 2 / 0
Регистрация: 05.06.2016
Сообщений: 139
1

Перевод из одной системы счисления в другую

06.06.2016, 06:27. Показов 7946. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте . Есть работающая программа по переводу из десятичной системы счисления в двоичную. Но надо сделать так , чтобы программа не просто выводила остаток в обратном порядке , но и присваивала его какой -либо переменной . Задача вроде как легкая , но я втыкаюсь и понять вобще не могу,каким образом это реализовать. Заранее спасибо .

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
#include <stdio.h>
 
#include <locale.h>
 
int Perevod (int n ) 
 
{ 
            if ( n >= 2 ) 
             
            Perevod( n/2 ); 
           
                printf("%d",n%2); 
                
                                                  } 
 
                             int main () 
        
{ 
setlocale(LC_ALL, "russian");
                     
                    int n,z; 
          
             printf("Введите  n= "); 
 
                scanf("%d", &n); 
 
                          printf("Результат операций: "); 
 
               Perevod( n ); 
               
                
                   
 
                              return 0; }
Либо через динамический же массив можно это как то сделать , помогите , буду признателен
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2016, 06:27
Ответы с готовыми решениями:

Перевод из одной системы счисления в другую
Здравствуйте. Помогите,пожалуйста,написать программу перевода для целых чисел из системы счисления...

Перевод из одной системы счисления в другую
Задача следующая: 1)Пользователь вводит числа в 16 системе в бессконечную строку (список), по...

Перевод числа из одной системы счисления в другую
Перевод числа из одной системы счисления. 12. Числа по основанию 16 и 8. Выполнить операцию деления...

Перевод чисел из одной системы счисления в другую
Здравствуйте, уважаемые форумчане. Нужна помощь, имеется программа по переводу чисел из одной...

3
131 / 131 / 157
Регистрация: 11.04.2015
Сообщений: 343
06.06.2016, 10:09 2
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
#include<stdio.h>
 
int main(){
 
    long int decimalNumber,remainder,quotient;
    int i=1, j, *binaryNumber, length_of_binary;
    printf("Enter any decimal number: ");
    scanf("%ld",&decimalNumber);
    quotient = decimalNumber;
    if(decimalNumber % 2 == 0){
        length_of_binary = decimalNumber / 2;
    }
    else{
        length_of_binary = decimalNumber / 2 + 1;
    }
 
    binaryNumber = (int *) malloc(length_of_binary*sizeof(int));
 
    while(quotient!=0){
         binaryNumber[i++]= quotient % 2;
         quotient = quotient / 2;
    }
    printf("Binary number is %d: ",decimalNumber);
    for(j = i -1 ;j> 0;j--)
         printf("%d",binaryNumber[j]);
    free(binaryNumber);
    return 0;
 
}
1
111 / 98 / 84
Регистрация: 18.12.2015
Сообщений: 567
06.06.2016, 10:52 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Привет, вот предлагаю:

метод

C
1
printf();
%x - шестнадцатиричное представление
%o - восьмеричное представление
%d - десятичное представление

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
#include <stdio.h>
#include <string.h>
 
static char *convert_to_binary (unsigned int value, char *buffer, int size) {
    char *tmp_buffer = buffer;
 
    if (size < 1) {
        return NULL;
    }
 
    if (value == 0) {
        *tmp_buffer++ = '0';
        *tmp_buffer = '\0';
 
        return buffer;
    }
 
    tmp_buffer += size;
    *tmp_buffer-- = '\0';
 
    while (value != 0) {
        if (size-- == 0) {
            return NULL;
        }
 
        *tmp_buffer-- = ((value & 1) == 1) ? '1' : '0';
 
        value >>= 1;
    }
 
    return tmp_buffer+1;
}
 
int main(void) {
    char buffer[32 + 1];
 
    printf(" %s \n", convert_to_binary(30 ,buffer, 32));
 
    return 0;
}
1
2 / 2 / 0
Регистрация: 05.06.2016
Сообщений: 139
06.06.2016, 21:03  [ТС] 4
Спасибо за отклик , но я забыл добавить что нужно именно в рамках данного кода , с сохранением рекурсивной функции. С уважением.

Добавлено через 8 часов 8 минут
Сделал другой код , но со статистическим массивов , что при выводе результате он отводит много лишних знаков , т.е если вводим 56 то результат должен получится 111000 , он же выдает 0000111000 . В связи с этим возникает вопрос , как внутри этого кода заменить статический массив на динамический , желательно через оператор new ?
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
#include <stdio.h> 
#include <stdlib.h> 
#define N 10
 
int main () 
{ 
int a[N],k,i,glass; 
int n; 
printf("n = "); 
scanf("%d", &n); 
 
 
printf(" (Dec) = "); 
 
 
for (i=0;i<N;i++) { 
if (n%2==0) { 
a[i]=0; 
} else { 
a[i]=1; 
} 
n=n/2; 
} 
 
for (i=0; i<N/2; i++) 
{ 
glass=a[i]; 
a[i]=a[N-1-i]; 
a[N-1-i]=glass; 
} 
 
 
for (i=0;i<N;i++) { 
printf("%2d",a[i]); 
} 
 
 
 
 
printf(" (Bin)\n"); 
 
return 0; 
 
}
0
06.06.2016, 21:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2016, 21:03
Помогаю со студенческими работами здесь

Перевод чисел из одной системы счисления в другую
Задание: Написать программу на языке С для перевода числа, представленного в системе счисления с...

Перевод дробной части числа из одной системы счисления в другую
На языке С

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

Конверсия чисел из одной системы счисления в другую
Релиазовать программу которая будет конвертировать числа между двумя системами исчисления ...

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

Перевод чисел из десятичной системы счисления в любую другую
Считать с клавиатуры целое неотрицательное число в десятичной системе счисления и основание новой...


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

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