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

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

Восстановить пароль Регистрация
 
Тимкин Николай
2 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 55
21.01.2014, 15:13     Системы счисления 2 и 16, выполнить операцию сложение #1
Помогите пожалуйста, если возможно, то с объяснением.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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, выполнить операцию сложение
Ответ Создать тему
Опции темы

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