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

Перевести из 16-ой в 2-ую систему счисления

08.04.2016, 17:20. Показов 1342. Ответов 14
Метки нет (Все метки)

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
 
char* HEXtoBIN(long a, char *bin)
 
{
    long B = a;
    int N,i;
    if (a == 0)
        N = 1;
    else
    {
        N = 0;
        while (B != 0)
        {
            N++;
            B = B / 16;
        }
    }
    bin = (char*)malloc((4 * N + 1)*sizeof(char));/*Функция malloc выделяет блок памяти, размером sizemem байт, и возвращает указатель на начало блока.
 
Содержание выделенного блока памяти не инициализируется, оно остается с неопределенными значениями.*/
 
    for (i = N - 1; i >= 0; i--)
    {
        switch (a % 16)
        {
            case 0:
            {
                bin[4 * i] = '0';
                bin[4 * i + 1] = '0';
                bin[4 * i + 2] = '0';
                bin[4 * i + 3] = '0';
                break;
            }
            case 1:
            {
                bin[4 * i] = '0';
                bin[4 * i + 1] = '0';
                bin[4 * i + 2] = '0';
                bin[4 * i + 3] = '1';
                break;
            }
            case 2:
            {
                bin[4 * i] = '0';
                bin[4 * i + 1] = '0';
                bin[4 * i + 2] = '1';
                bin[4 * i + 3] = '0';
                break;
            }
            case 3:
            {
                bin[4 * i] = '0';
                bin[4 * i + 1] = '0';
                bin[4 * i + 2] = '1';
                bin[4 * i + 3] = '1';
                break;
            }
            case 4:
            {
                bin[4 * i] = '0';
                bin[4 * i + 1] = '1';
                bin[4 * i + 2] = '0';
                bin[4 * i + 3] = '0';
                break;
            }
            case 5:
            {
                bin[4 * i] = '0';
                bin[4 * i + 1] = '1';
                bin[4 * i + 2] = '0';
                bin[4 * i + 3] = '1';
                break;
            }
            case 6:
            {
                bin[4 * i] = '0';
                bin[4 * i + 1] = '1';
                bin[4 * i + 2] = '1';
                bin[4 * i + 3] = '0';
                break;
            }
            case 7:
            {
                bin[4 * i] = '0';
                bin[4 * i + 1] = '1';
                bin[4 * i + 2] = '1';
                bin[4 * i + 3] = '1';
                break;
            }
            case 8:
            {
                bin[4 * i] = '1';
                bin[4 * i + 1] = '0';
                bin[4 * i + 2] = '0';
                bin[4 * i + 3] = '0';
                break;
            }
            case 9:
            {
                bin[4 * i] = '1';
                bin[4 * i + 1] = '0';
                bin[4 * i + 2] = '0';
                bin[4 * i + 3] = '1';
                break;
            }
            case 10:
            {
                bin[4 * i] = '1';
                bin[4 * i + 1] = '0';
                bin[4 * i + 2] = '1';
                bin[4 * i + 3] = '0';
                break;
            }
            case 11:
            {
                bin[4 * i] = '1';
                bin[4 * i + 1] = '0';
                bin[4 * i + 2] = '1';
                bin[4 * i + 3] = '1';
                break;
            }
            case 12:
            {
                bin[4 * i] = '1';
                bin[4 * i + 1] = '1';
                bin[4 * i + 2] = '0';
                bin[4 * i + 3] = '0';
                break;
            }
            case 13:
            {
                bin[4 * i] = '1';
                bin[4 * i + 1] = '1';
                bin[4 * i + 2] = '0';
                bin[4 * i + 3] = '1';
                break;
            }
            case 14:
            {
                bin[4 * i] = '1';
                bin[4 * i + 1] = '1';
                bin[4 * i + 2] = '1';
                bin[4 * i + 3] = '0';
                break;
            }
            case 15:
            {
                bin[4 * i] = '1';
                bin[4 * i + 1] = '1';
                bin[4 * i + 2] = '1';
                bin[4 * i + 3] = '1';
                break;
            }
        }
        a = a / 16;
    }
    bin[4 * N] = '\0';
    cout<<bin[4*N];
    return bin;
}

Что не так?Помогите ,пожалуйста.
Выдает ошибку undefined reference to `WinMain@16'|
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2016, 17:20
Ответы с готовыми решениями:

Строка: Перевести число из римской системы счисления в десятичную систему счисления
Введите массив символов из 13 элементов. Перевести число из римской системы счисления в десятичную...

Системы счисления. Перевести данное натуральное число в 16-тиричную систему счисления
Составить программу перевода данного натурального числа n в 16теричную систему счисления....

Как перевести из шестнадцатиричной системы счисления в двоичную систему счисления
не могу понять как правильно надо это сделать ?? простым подбором не интересно

Перевести число из системы счисления с основанием 19 в десятичную систему счисления
Уважаемые разбирающиеся во всём этом люди, прошу вас помочь мне с этой задачей Примечания...

14
7787 / 6555 / 2983
Регистрация: 14.04.2014
Сообщений: 28,633
08.04.2016, 17:34 2
Это всё? Где main()?
0
0 / 0 / 0
Регистрация: 03.05.2015
Сообщений: 7
08.04.2016, 17:51  [ТС] 3
могу понять, что там нужно написать(в main())
0
7787 / 6555 / 2983
Регистрация: 14.04.2014
Сообщений: 28,633
08.04.2016, 17:57 4
Откуда я знаю? Что программа-то должна делать? То и пиши.
0
0 / 0 / 0
Регистрация: 03.05.2015
Сообщений: 7
08.04.2016, 18:10  [ТС] 5
Она должна переводить число из 16 сс в 2сс.Я пишу,ерунда какая-то получается
0
7787 / 6555 / 2983
Регистрация: 14.04.2014
Сообщений: 28,633
08.04.2016, 18:17 6
В main() должен быть вызов HEXtoBIN() с желаемыми параметрами, которые, наверное, сначала надо ввести.
0
116 / 106 / 51
Регистрация: 29.03.2016
Сообщений: 480
08.04.2016, 18:32 7
какое безумие... так и до искусственного интеллекта недалеко
0
nmcf
08.04.2016, 18:35
  #8

Не по теме:

Serg_o_Grey, ты о чём?

0
116 / 106 / 51
Регистрация: 29.03.2016
Сообщений: 480
08.04.2016, 21:13 9

Не по теме:

я о масштабах



Добавлено через 7 минут
Appolinaria,
посмотрите принцип перевода в другую систему счисления (в примере из десятичной):
Перевод из десятичной системы счисления в другую

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

Добавлено через 2 часа 27 минут
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
#include <iostream>
 
using namespace std;
 
int main() 
{ 
    string h = "38af8";
    string b = "";
    int a, c;
    string tmp;
    for (int i = 0; i < h.size(); i++)
    {
        tmp = "";
        if ((h[i] >= 48) && (h[i] <= 57)) a = h[i] - 48;
        else if ((h[i] >= 65) && (h[i] <= 70)) a = h[i] - 55; 
             else if ((h[i] >= 97) && (h[i] <= 102)) a = h[i] - 87;
        while (true)
        {
            if (a < 2) {tmp += a + 48; break;}
            c = a / 2;
            tmp += (a % 2) + 48;
            a = c;
        }
        a = tmp.size();
        for (int j=a; j < 4; j++) tmp = tmp + '0';
        for (int j=3; j >= 0; j--) b += tmp[j];
    }
    cout << b << endl;
    cin.get();
    return 0;
}
0
nmcf
08.04.2016, 21:19
  #10

Не по теме:

Да автор уже передумал программировать.

0
Serg_o_Grey
08.04.2016, 21:23
  #11

Не по теме:

да не, дела у него, утром вернется

0
nmcf
08.04.2016, 21:24
  #12

Не по теме:

Лично знаком? :)

0
Serg_o_Grey
08.04.2016, 21:32
  #13

Не по теме:

нет, просто столько кода без интереса не пишут, пусть даже похрамывает немного. я помню, свой первый лабиринт (10x10) на паскале не генерировал, а вручную списками описывал. через некоторое время понял что к чему и оптимизировал его.

0
0 / 0 / 0
Регистрация: 03.05.2015
Сообщений: 7
09.04.2016, 15:23  [ТС] 14
спасибо, пытаюсь разобраться

Добавлено через 3 минуты
Преподаватель,сказал нужно делать через тетраеды
0
nmcf
09.04.2016, 15:32     Перевести из 16-ой в 2-ую систему счисления
  #15

Не по теме:

Serg_o_Grey, ты оказался прав. :)

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2016, 15:32

Как перевести число с 16 системы счисления в 2 систему счисления (программа)
Как перевести число с 16 системы счисления в 2 систему счисления ? (программа).

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

Перевести целие числа из деятичной системы счисления в систему счисления с любым другим основанием
Помогите. Сделал чтоб переводило из 10 в 1,2,3,4,5,6,7,8,9 .Вся проблема в том что я незнаю как...

Перевести числа из 10 системы счисления в троичную систему счисления.
Такая вот проблемка нужно перевести числа из 10 системы счисления в троичную систему счисления....

Перевести из 10 в 32 систему счисления
Как перевести с 10 в 32 систему счисления? Видел на одном сайте то там работает.

Перевести в 10 систему счисления
Помогите перевести в 10 систему если задавать числа с буквами (19A2) т.е 11-16 системы cout &lt;&lt;...


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

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