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

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

Войти
Регистрация
Восстановить пароль
 
Тимкин Николай
2 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 55
#1

Системы счисления 2 и 16, выполнить операцию сложение - C++

21.01.2014, 15:13. Просмотров 412. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста, если возможно, то с объяснением.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2014, 15:13     Системы счисления 2 и 16, выполнить операцию сложение
Посмотрите здесь:

Выполнить операцию транспонирования прямоугольной матрицы C++
C++ Выполнить операцию транспонирования прямоугольной матрицы
Написать программу, которая переводит числа по основанию 8 в 4. Выполнить операцию деления C++
Числа по основанию 8 и 4. Выполнить операцию деления C++
Числа по основанию 10 и 16. Выполнить операцию сложения C++
C++ Числа по основанию 2 и 10. Выполнить операцию умножения
Как десятью потоками выполнить операцию 50 раз C++
C++ С восьмеричной системы счисления в десятичную систему счисления
Числа по основанию 2 и 16. Выполнить операцию умножения C++
Сложение чисел 11-ричной системы счисления C++
Ввести два числа и выполнить указанную операцию C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TSed
19 / 19 / 1
Регистрация: 22.01.2013
Сообщений: 76
21.01.2014, 18:59     Системы счисления 2 и 16, выполнить операцию сложение #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
30
31
32
33
34
35
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
 
int binToDec(string bin);
 
int main(){
    setlocale(LC_ALL, "Russian");
    string bin;
    int h;
    cout<<"Введите двоичное число"<<endl;
    cin>>bin;
    cout<<"Введите шестнадцатеричное число"<<endl;
    cin>>hex>>h;
    cout<<""<<binToDec(bin) + h<<endl;
    system ("pause");
    return 0;
}
int binToDec(string bin){
    //checking correctness
    for (int i = 0; i < bin.length(); i++){
        if ((bin[i] != '0') && (bin[i] != '1'))
            return -1;
    }
    //calculating
    int p = bin.length() - 1;
    int result = 0;
    for (int i = 0; i < bin.length(); i++){
        if (bin[i] == '1')
            result += pow(2, p);
        p--;
    }
    return result;
}
Добавлено через 1 минуту
объяснять нужно?
Тимкин Николай
2 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 55
21.01.2014, 19:01  [ТС]     Системы счисления 2 и 16, выполнить операцию сложение #3
Цитата Сообщение от TSed Посмотреть сообщение
объяснять нужно?
да,желательно буду очень благодарен
TSed
19 / 19 / 1
Регистрация: 22.01.2013
Сообщений: 76
21.01.2014, 19:11     Системы счисления 2 и 16, выполнить операцию сложение #4
Тимкин Николай, формы представления чисел (2, 8 , 10, 16...) по сути нужны только для удобства пользователя. Двоичного представления литералов в с++ нет поэтому я использовал свою функцию которая принимает в качестве аргумента строку, а возвращает целое число. С 16-ой формой все несколько иначе, имеется возможность описать литерал
C++
1
int i = 0x0;//указываем компилятору что это 16-я форма
также можно сообщить потоку что следующее значение будет введено в 16-ой системе
C++
1
cin>>hex>>h;
так же и с выводом
C++
1
cout<<hex<<h;
непосредственно само сложение производится в одной системе и нам не требуется переводить числа в одну систему.
Yandex
Объявления
21.01.2014, 19:11     Системы счисления 2 и 16, выполнить операцию сложение
Ответ Создать тему
Опции темы

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