Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Coreu
0 / 0 / 0
Регистрация: 15.05.2017
Сообщений: 24
1

Конвертер перевода из десятичной системы счисления в шестнадцатиричную и двоичную

31.05.2017, 13:26. Просмотров 2468. Ответов 28
Метки нет (Все метки)

Здравствуйте !.Помогите пожалуйста написать программу перевода Десятичной СС в 16ую и 2ую .Буду благодарен!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2017, 13:26
Ответы с готовыми решениями:

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

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

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

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

28
Геомеханик
812 / 615 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
31.05.2017, 17:17 2
Лучший ответ Сообщение было отмечено Coreu как решение

Решение

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
49
50
51
52
53
54
55
#include <stdio.h>
#include <limits.h>
#define BUF_BIN  ((sizeof(int) << 3) + 1)
#define BUF_HEX  ((sizeof(int) << 1) + 1)
char* dec_to_bin(char* d, int n);
char* dec_to_hex(char* d, int n);
 
int main(void){
    char bin[BUF_BIN], hex[BUF_HEX];
    puts( dec_to_bin(bin, INT_MIN) );
    puts( dec_to_bin(bin, INT_MAX) );
    puts("");
    puts( dec_to_hex(hex, INT_MIN) );
    puts( dec_to_hex(hex, INT_MAX) );
    getchar();
    return 0;
}
 
//10 -> 2
char* dec_to_bin(char* d, int n){
    char c, *p, *t = d;
    unsigned int x = (unsigned int)n;
    do {
        *d++ = (char)((x & 0x1) + '0');
    } while((x >>= 1) != 0);
    *d = '\0';
 
    for(--d, p = t; p < d; ++p, --d){
        c  = *p;
        *p = *d;
        *d = c;
    }
    return t;
}
 
//10 -> 16
char* dec_to_hex(char* d, int n){
    char c, *p, *t = d;
    unsigned int y, x = (unsigned int)n;
    do {
        y = x & 0xF;
        if(y < 10)
            *d++ = (char)(y + '0');
        else
            *d++ = (char)(y - 10 + 'A');
    } while((x >>= 4) != 0);
    *d = '\0';
 
    for(--d, p = t; p < d; ++p, --d){
        c  = *p;
        *p = *d;
        *d = c;
    }
    return t;
}
1
Coreu
0 / 0 / 0
Регистрация: 15.05.2017
Сообщений: 24
31.05.2017, 17:55  [ТС] 3
D:\Users\user\Desktop\archive\выв.c:9:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:9:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:9:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:9:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:10:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:10:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:11:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:11:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:12:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:12:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:13:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:13:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:14:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:14:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:15:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:15:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:16:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:16:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c: At top level:
D:\Users\user\Desktop\archive\выв.c:18:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c: In function 'dec_to_bin':
D:\Users\user\Desktop\archive\выв.c:21:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:21:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:22:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:22:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:23:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:23:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:24:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:24:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:24:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:24:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:25:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:25:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:26:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:26:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:27:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:28:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:28:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:29:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:29:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:29:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:29:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:29:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:30:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:30:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:30:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:30:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:31:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:31:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:31:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\выв.c:31:1: error: stray '\240' in program
Process terminated with status 1 (0 minute(s), 0 second(s))
50 error(s), 0 warning(s) (0 minute(s), 0 second(s))

Запускал в CodeBlocks .Выбило вот такие ошибки
0
MrGluck
Форумчанин
Эксперт CЭксперт С++
8144 / 4995 / 1436
Регистрация: 29.11.2010
Сообщений: 13,460
31.05.2017, 18:04 4
Цитата Сообщение от Coreu Посмотреть сообщение
error: stray '\240' in program
Поменяйте символы, которые стоят на местах пробелов и табов на явные.
У вас трабл при копировании произошёл, какой-то символ поехал.
1
Coreu
0 / 0 / 0
Регистрация: 15.05.2017
Сообщений: 24
31.05.2017, 18:24  [ТС] 5
Эх,спасибо!Будем копаться)Вот только как может произойти трабл при копировании,я не понял)

Добавлено через 9 минут
Только в строке 9 осталась ошибочка
Но я не пойму что не так.Вроде всё исправил в ней char bin[BUF_BIN],hex[BUF_HEX];

D:\Users\user\Desktop\archive\А.c:9:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\А.c:9:1: error: stray '\240' in program
0
MrGluck
Форумчанин
Эксперт CЭксперт С++
8144 / 4995 / 1436
Регистрация: 29.11.2010
Сообщений: 13,460
31.05.2017, 18:31 6
Coreu, сотрите и наберите с нуля
0
Coreu
0 / 0 / 0
Регистрация: 15.05.2017
Сообщений: 24
31.05.2017, 18:34  [ТС] 7
Очень странно.Стёр и написал вручную ,ничего не изменилось
0
MrGluck
Форумчанин
Эксперт CЭксперт С++
8144 / 4995 / 1436
Регистрация: 29.11.2010
Сообщений: 13,460
31.05.2017, 18:41 8
Всю строку с начала до конца. Желательно чтобы между предыдущей и следующей после удаляемой не было разрыва.
1
Coreu
0 / 0 / 0
Регистрация: 15.05.2017
Сообщений: 24
31.05.2017, 18:46  [ТС] 9
Всю переписал ,сначала до конца.Вот что в результате
0
Миниатюры
Конвертер перевода из десятичной системы счисления в шестнадцатиричную и двоичную  
Coreu
0 / 0 / 0
Регистрация: 15.05.2017
Сообщений: 24
31.05.2017, 18:59  [ТС] 10
даже разделил эту строку на 2
0
Миниатюры
Конвертер перевода из десятичной системы счисления в шестнадцатиричную и двоичную  
MrGluck
Форумчанин
Эксперт CЭксперт С++
8144 / 4995 / 1436
Регистрация: 29.11.2010
Сообщений: 13,460
31.05.2017, 19:03 11
C
1
//10 -> 2
кстати тоже лучше удалить. Такие комментарии появились в С99, в Dev скорее всего mingw штатный на C89 настроен.
0
Coreu
0 / 0 / 0
Регистрация: 15.05.2017
Сообщений: 24
01.06.2017, 12:10  [ТС] 12
Ну удаление коментария ничего не решило)

Добавлено через 17 часов 4 минуты
Эх.Проблема так и не решилась
0
MrGluck
Форумчанин
Эксперт CЭксперт С++
8144 / 4995 / 1436
Регистрация: 29.11.2010
Сообщений: 13,460
01.06.2017, 12:15 13
Coreu, выложите код с вашими исправлениями
0
Coreu
0 / 0 / 0
Регистрация: 15.05.2017
Сообщений: 24
01.06.2017, 12:18  [ТС] 14
Просто удалил пробелы и отступы,которые были нарушены при копировании .Но в строке 9,10 так же ошибка D:\Users\user\Desktop\archive\А.c:9:1: error: stray '\240' in program
D:\Users\user\Desktop\archive\А.c:10:1: error: stray '\240' in program

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
49
50
51
#include <stdio.h>
#include <limits.h>
#define BUF_BIN *((sizeof(int) << 3) + 1)
#define BUF_HEX *((sizeof(int) << 1) + 1)
char* dec_to_bin(char* d, int n);
char* dec_to_hex(char* d, int n);
int main(void)
{
char bin[BUF_BIN];
char hex[BUF_HEX];
puts( dec_to_bin(bin, INT_MIN) );
puts( dec_to_bin(bin, INT_MAX) );
puts("");
puts( dec_to_hex(hex, INT_MIN) );
puts( dec_to_hex(hex, INT_MAX) );
getchar();
return 0;
}
char* dec_to_bin(char* d, int n){
char c, *p, *t = d;
unsigned int x = (unsigned int)n;
do {
*d++ = (char)((x & 0x1) + '0');
 } while((x >>= 1) != 0);
*d = '\0';
for(--d, p = t; p < d; ++p, --d){
c = *p;
*p = *d ;
*d = c ;
 }
 return t;
}
//10 -> 16
char* dec_to_hex(char* d, int n){
char c, *p, *t = d;
unsigned int y, x = (unsigned int)n;
do {
y = x & 0xF;
if(y < 10)
*d++ = (char)(y + '0');
else
*d++ = (char)(y - 10 + 'A');
 } while((x >>= 4) != 0);
*d = '\0';
for(--d, p = t; p < d; ++p, --d){
c = *p;
*p = *d;
*d = c;
}
return t;
}
0
MrGluck
Форумчанин
Эксперт CЭксперт С++
8144 / 4995 / 1436
Регистрация: 29.11.2010
Сообщений: 13,460
01.06.2017, 12:32 15
Так попробуйте:
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
49
50
51
52
53
#include <stdio.h>
#include <limits.h>
#define BUF_BIN  ((sizeof(int) << 3) + 1)
#define BUF_HEX  ((sizeof(int) << 1) + 1)
char* dec_to_bin(char* d, int n);
char* dec_to_hex(char* d, int n);
 
int main(void){
    char bin[BUF_BIN], hex[BUF_HEX];
    puts( dec_to_bin(bin, INT_MIN) );
    puts( dec_to_bin(bin, INT_MAX) );
    puts("");
    puts( dec_to_hex(hex, INT_MIN) );
    puts( dec_to_hex(hex, INT_MAX) );
    getchar();
    return 0;
}
 
char* dec_to_bin(char* d, int n){
    char c, *p, *t = d;
    unsigned int x = (unsigned int)n;
    do {
        *d++ = (char)((x & 0x1) + '0');
    } while((x >>= 1) != 0);
    *d = '\0';
 
    for(--d, p = t; p < d; ++p, --d){
        c  = *p;
        *p = *d;
        *d = c;
    }
    return t;
}
 
char* dec_to_hex(char* d, int n){
    char c, *p, *t = d;
    unsigned int y, x = (unsigned int)n;
    do {
        y = x & 0xF;
        if(y < 10)
            *d++ = (char)(y + '0');
        else
            *d++ = (char)(y - 10 + 'A');
    } while((x >>= 4) != 0);
    *d = '\0';
 
    for(--d, p = t; p < d; ++p, --d){
        c  = *p;
        *p = *d;
        *d = c;
    }
    return t;
}
0
Coreu
0 / 0 / 0
Регистрация: 15.05.2017
Сообщений: 24
01.06.2017, 12:40  [ТС] 16
Опять же трабл при копировании был,пришлось все табы стирать .Ошибка строке в 8.Всё та же
0
Миниатюры
Конвертер перевода из десятичной системы счисления в шестнадцатиричную и двоичную  
Coreu
0 / 0 / 0
Регистрация: 15.05.2017
Сообщений: 24
01.06.2017, 12:52  [ТС] 17
Даже не знаю в чём может быть проблема
0
shvyrevvg
1346 / 799 / 370
Регистрация: 12.05.2016
Сообщений: 2,162
01.06.2017, 13:07 18
Coreu, может в хексе открыть посмотреть проще?
0
Coreu
0 / 0 / 0
Регистрация: 15.05.2017
Сообщений: 24
01.06.2017, 13:34  [ТС] 19
не пробовал.Думаете поможет?

Добавлено через 20 минут
shvyrevvg, а зачем?
0
shvyrevvg
1346 / 799 / 370
Регистрация: 12.05.2016
Сообщений: 2,162
01.06.2017, 13:56 20
Coreu, выложите архив с кодом, без копировать вставить.
0
01.06.2017, 13:56
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2017, 13:56

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Программа перевода числа из десятичной системы счисления в двоичную
Подскажите,где ошибка, я что-то где-то не понимаю... using System; using...

Написать процедуру перевода числа из десятичной системы счисления в двоичную
Function fafa(ByVal z As Integer) As Integer Select Case z Case Is = 0 :...

Рекурсия: функция перевода числа из десятичной системы счисления в двоичную
помогите пожалуйста


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

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

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