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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 226
#1

Сложение в 16 ичной системе счисления - C++

17.06.2014, 15:08. Просмотров 848. Ответов 10
Метки нет (Все метки)

Вот написал программу сложения в 2-10ичной системах счисления, подскажите пожалуйста, каким образом её можно доделать, чтобы она считала в 11-16ричной?
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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstring> 
 
using namespace std;
 
int main()
{ 
    int osnovanie = 10;
    char bvector1[100];
    char bvector2[100];char rezult[100];
        cin >> bvector1 >> bvector2;
    int L1 = strlen(bvector1);
    for(int i = 0; i < L1; i++)
    {
        bvector1[i] -= '0';
    }
    int L2 = strlen(bvector2);
    for(int i = 0; i < L2; i++)
    {
        bvector2[i] -= '0';
    } 
    if (L1 != L2)
    {
        if (L1 > L2)
        {
            for (int i = 0; i < L2; i++)
            bvector2[L1-1-i] = bvector2[L2-1-i];
            memset(bvector2, 0, (L1-L2));
        }
        if (L2 > L1)
        {
            for (int i = 0; i < L1; i++)
            bvector1[L2-1-i] = bvector1[L1-1-i];
            memset(bvector1, 0, (L2-L1));
        }
    }
    int i;char carry, sum;
    int q;
    if (L1 > L2)
    q = L1;
    else q = L2;
    i = q - 1;
    carry = 0;
    int h;
    while (i >= 0)
    {
        sum = bvector1[i] + bvector2[i] + carry;
        h = sum/osnovanie;
        if (sum < osnovanie) {rezult[i--] = sum;}
        else rezult[i--] = sum - osnovanie;
        carry = h;
    }
    printf("\n");
    for (i = 0; i < q; i++)
    printf("%d",(int)rezult[i]);
    cout << "\n";
    system("Pause");
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2014, 15:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сложение в 16 ичной системе счисления (C++):

дано число в К-ичной системе счисления - C++
an an-1 ...а0 (К&lt;=36). найти остаток от деления его на m. числа К,n,m, как и остаток от деления на m, представляются в десятичной системе...

Натуральное число в p-ичной системе счисления - C++
Натуральное число в p-ичной системе счисления задано своими цифрами, хранящимися в массиве K(n). Проверить корректность такого...

Перевод числа в p-ичной системе счисления в десятичную систему - C++
Задание: Дана символьная строка, представляющая собой запись натурального числа в p-ичной системе счисления (2 ≤ р ≤ 9). Составить...

Таблица сложения одноразрядных чисел в p-ичной системе счисления - C++
Напечатать таблицу сложения одноразрядных чисел в p-ичной системе счисления, 16 ≤p .

Ввести целое число N, вывести его в 3-ичной системе счисления - C++
Ввести целое число N, вывести его в 3-ичной системе счисления.

Сложение в двоичной системе счисления - C++
можете реализовать эту задачку? Сложение в двоичной системе счисления

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IrineK
Заблокирован
17.06.2014, 15:31 #2
Введите строку алфавита
C++
1
char alphabet [] = "012345679abcdf";
Тогда роль "osnovanie" будет играть индекс в этой строке.
0
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 226
17.06.2014, 15:37  [ТС] #3
Цитата Сообщение от IrineK Посмотреть сообщение
Тогда роль "osnovanie" будет играть индекс в этой строке.
Суть вроде понял, а на практике как сделать? Что-то не получается...
0
IrineK
Заблокирован
17.06.2014, 15:41 #4
Потратьте времени больше чем 6 минут. Получится.
0
Exоrcist
15 / 15 / 7
Регистрация: 20.02.2014
Сообщений: 86
17.06.2014, 16:07 #5
Цитата Сообщение от niikiita Посмотреть сообщение
тобы она считала в 11-16ричной?
Такая разве есть?
0
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 226
17.06.2014, 16:08  [ТС] #6
Цитата Сообщение от Exоrcist Посмотреть сообщение
Такая разве есть?
От 11 до 16ичной
0
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
17.06.2014, 16:12 #7
niikiita, тебе накидать таблицы сложения, вычитания и умноженияniikiita, от двоичной до шестнадцатеричной системы?
0
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 226
17.06.2014, 21:20  [ТС] #8
Цитата Сообщение от taras atavin Посмотреть сообщение
niikiita, тебе накидать таблицы сложения, вычитания и умноженияniikiita, от двоичной до шестнадцатеричной системы?
нет спасибо
Цитата Сообщение от IrineK Посмотреть сообщение
Потратьте времени больше чем 6 минут. Получится.
что-то я не понимаю как это работает, даже если не трогая 11+ системы, он перестал работать например в 7ричной:
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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstring> 
 
using namespace std;
 
int main()
{ 
    char alphabet [] = "012345679abcdf"; int n; cin >> n;
    char bvector1[100];
    char bvector2[100];char rezult[100];
        cin >> bvector1 >> bvector2;
    int L1 = strlen(bvector1);
    for(int i = 0; i < L1; i++)
    {
        bvector1[i] -= '0';
    }
    int L2 = strlen(bvector2);
    for(int i = 0; i < L2; i++)
    {
        bvector2[i] -= '0';
    } 
    if (L1 != L2)
    {
        if (L1 > L2)
        {
            for (int i = 0; i < L2; i++)
            bvector2[L1-1-i] = bvector2[L2-1-i];
            memset(bvector2, 0, (L1-L2));
        }
        if (L2 > L1)
        {
            for (int i = 0; i < L1; i++)
            bvector1[L2-1-i] = bvector1[L1-1-i];
            memset(bvector1, 0, (L2-L1));
        }
    }
    int i;char carry, sum;
    int q;
    if (L1 > L2)
    q = L1;
    else q = L2;
    i = q - 1;
    carry = 0;
    int h;
    while (i >= 0)
    {
        sum = bvector1[i] + bvector2[i] + carry;
        h = sum/alphabet [n];
        if (sum < alphabet [n]) {rezult[i--] = sum;}
        else rezult[i--] = sum - alphabet [n];
        carry = h;
    }
    printf("\n");
    for (i = 0; i < q; i++)
    printf("%d",(int)rezult[i]);
    cout << "\n";
    system("Pause");
}
Ввожу: 6 4 4
Ответ: 8

Добавлено через 4 часа 56 минут
Ребят ну помогите пожалуйста, сдавать скоро, доделаю и засуну универсальный калькулятор вот сюда Большая коллекция решенных задач, чтобы такие дурачки как я глупые вопросы не задавали
0
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.06.2014, 12:03 #9
Ваще то эта прога считает только в двоичной, а вводи и вывод сделаны в других системах.
0
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 226
18.06.2014, 12:10  [ТС] #10
Цитата Сообщение от taras atavin Посмотреть сообщение
Ваще то эта прога считает только в двоичной, а вводи и вывод сделаны в других системах.
нужно чтобы считала напрямую
0
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
23.06.2014, 09:47 #11
Что значит "напрямую"? Если во внутренней системе счисления, то можно юзать обычные числовые типы и оператор +. Или непосредственно в заданой системе? Тогда попробуй отладить вложение: test.rar.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2014, 09:47
Привет! Вот еще темы с ответами:

Сложение в двоичной системе счисления - C++
Добрый день! Помогите пожалуйста, не знаю как реализовать. Например n = 1010.1111 m = 1011.0101 . Я понимаю как сделать это на бумаге, но...

Сложение в двоичной системе счисления - C++
//--------------------------------------------------------------------------- #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include...

Сложение чисел в 16-й системе счисления - C++
помогите написать программу которая прибавляет два числа из 16й СС! F+F; Можно просто алгоритм Я сам помучаюсь!

Сложение чисел в двоичной системе счисления - C++
Напишите программу, реализующую сложение чисел в двоичной системе счисления с использованием контроля по модулю. Вопрос. что значит &quot;с...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.06.2014, 09:47
Ответ Создать тему
Опции темы

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