Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <string>
- using namespace std;
- int main() {
- string Num;
- int brSys;
- while ( cin >> brSys >> Num ) {
- int st = Num.length()-1, decimalNum = 0, i=0;
- switch (brSys) {
- case 2: for ( i; i<Num.length(); i++ )
- decimalNum += ( Num[i] == '1' ? 1 : 0 ) * pow( 2. , st-i ); break;
- case 8:
- for( i; i<Num.length(); i++ ) {
- switch (Num[i]) {
- case '0': break;
- case '1': decimalNum += 1 * pow( 8., st-i ); break;
- case '2': decimalNum += 2 * pow( 8., st-i ); break;
- case '3': decimalNum += 3 * pow( 8., st-i ); break;
- case '4': decimalNum += 4 * pow( 8., st-i ); break;
- case '5': decimalNum += 5 * pow( 8., st-i ); break;
- case '6': decimalNum += 6 * pow( 8., st-i ); break;
- case '7': decimalNum += 7 * pow( 8., st-i ); break;
- }
- } break;
- case 16:
- for( i; i<Num.length(); i++ ) {
- switch (Num[i]) {
- case '0': break;
- case '1': decimalNum += 1 * pow( 16., st-i ); break;
- case '2': decimalNum += 2 * pow( 16., st-i ); break;
- case '3': decimalNum += 3 * pow( 16., st-i ); break;
- case '4': decimalNum += 4 * pow( 16., st-i ); break;
- case '5': decimalNum += 5 * pow( 16., st-i ); break;
- case '6': decimalNum += 6 * pow( 16., st-i ); break;
- case '7': decimalNum += 7 * pow( 16., st-i ); break;
- case '8': decimalNum += 8 * pow( 16., st-i ); break;
- case '9': decimalNum += 9 * pow( 16., st-i ); break;
- case 'A': decimalNum += 10 * pow( 16., st-i ); break;
- case 'B': decimalNum += 11 * pow( 16., st-i ); break;
- case 'C': decimalNum += 12 * pow( 16., st-i ); break;
- case 'D': decimalNum += 13 * pow( 16., st-i ); break;
- case 'E': decimalNum += 14 * pow( 16., st-i ); break;
- case 'F': decimalNum += 15 * pow( 16., st-i ); break;
- }
- } break;
- default: cout << "wrong entry data!!!\n";
- }
- cout << decimalNum << endl;
- }
- return 0;
- }
- /*
- Задачи за тренинг (2012/2013)
- Задача 1а. Да се напише програма за превръщане на естествено число от запис в двоична, осмична и шестнадесетична бройни системи в запис в десетична бройна система.
- Вход:
- На стандартния вход се задава редица от двойки числа (примери), като всяка двойка е на отделен ред. Първото число от двойката е основата на бройната система и може да бъде 2, 8 или 16, в която е записано второто число, което е по-малко от 106.
- Изход:
- За всеки пример (двойка числа) от входа се извежда едно число на отделен ред - записа на второто число в десетична бройна система.
- Пример:
- 2 1111
- 16 F
- 8 1
- Решение на примера:
- 15
- 15
- 1
- */
Advertisement
Add Comment
Please, Sign In to add comment