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

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

Войти
Регистрация
Восстановить пароль
 
Evgeni Gromov
0 / 0 / 0
Регистрация: 12.05.2014
Сообщений: 10
#1

Перевод чисел из десятичной системы счисления в 2, 8 и 16 - C++

12.05.2014, 21:25. Просмотров 1048. Ответов 7
Метки нет (Все метки)

Всем привет,нужна помощь. Помогите,пожалуйста.
Нужно перевести из десятичной системы счисления в другую(2,8 и 16). Основание и число выбирает пользователь.Нашел на этом форму программу,которая переводит из 10 в 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
#include <iostream>
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "Russian");
    int a, b=0, k=1, n;
    cout<<"Введите десятичное число: ";
    cin>>a;
    cout<<"Введите основание: ";
    cin>>n;
 
    if (n=2)
        {
        b+=a%2*k; //двоичное число = остаток от деления десятичного
        //числа на 2 (это, думаю, понятно) * k (разряд) +то, что было в b
        a/=2; //само деление а на 2
        k*=10; //увеличение разряда
        }
    if (n=8)
        {
        b+=a%8*k;
        a/=8;
        k*=10;
        }
 
    cout<<"Переведенное число: "<<b<<endl;
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2014, 21:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод чисел из десятичной системы счисления в 2, 8 и 16 (C++):

Перевод целых чисел из десятичной системы счисления в другие - C++
вот зробив алгоритм переведення з 10-вої в n систему числення, але біда в тому шо незнаю як написати код на С++, знайшов шось в інеті і...

Перевод чисел из десятичной системы счисления в двоичную, восьмеричную, шестнадцатеричную - C++
напишите код программы для проверки перевода чисел из десятичной системы счисления в двоичную,восьмеричную,шестнадцатеричную на языке С ...

Перевод натурального числа из десятичной системы счисления в систему счисления по основанию - C++
Здравствуйте. Я хотела бы попросить у вас помощи. Я понимаю, что это не очень красиво, но вдруг кто-нибудь откликнется. Я не очень...

Перевод из десятичной системы счисления в другие - C++
Написал небольшую програмку для перевода из одной системы счисления в другую. Подскажите, как осуществить перевод из десятичной в...

Перевод из десятичной системы счисления в двоичную - C++
Задали написать прогу для перевода числа из одной системы в другую #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;string&gt; using...

Перевод из десятичной системы счисления в другую - C++
Помогите пожалуйста. Необходимо написать программу, выполняющую перевод неотрицательного числа К, записанного в десятичной системе...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5310 / 4630 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
12.05.2014, 21:36 #2
Ты не можешь перевести одной операцией, так как требуется обработка каждого разряда, т. е. цикл.
Evgeni Gromov
0 / 0 / 0
Регистрация: 12.05.2014
Сообщений: 10
12.05.2014, 21:54  [ТС] #3
nmcf,а можешь подсказать как это сделать,я просто в с++ не шарю
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.05.2014, 22:01 #4
Вариант для ленивых:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <bitset>
int main() {
    int i = 42;
    std::cout << std::showbase << std::hex << i << std::endl;
    std::cout << std::oct << i << std::endl;
    std::cout << std::bitset<8>(i) << std::endl;
    return 0;
}
http://ideone.com/qJFIvA
Evgeni Gromov
0 / 0 / 0
Регистрация: 12.05.2014
Сообщений: 10
12.05.2014, 22:11  [ТС] #5
мне бы с тем вариантом сделать
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.05.2014, 22:28 #6
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
#include <iostream>
 
void printAs(int v, int base)
{
    char res[32] = "0";
    static const char* digits = "0123456789ABCDEF";
    int i = v?0:1;
    while( v )
    {
        res[i++] = digits[v%base];
        v/=base;
    }
    while( i-- )
    {
        std::cout << res[i];
    }
    std::cout << std::endl;
}
 
int main() {
    
    printAs(42,16);
    printAs(42,8);
    printAs(42,2);
    
    return 0;
}
http://ideone.com/xI8vyd
Evgeni Gromov
0 / 0 / 0
Регистрация: 12.05.2014
Сообщений: 10
12.05.2014, 22:51  [ТС] #7
а как сделать,чтобы число и основание выбирал пользователь?
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.05.2014, 23:04 #8
Evgeni Gromov, в первом же сообщении есть код.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2014, 23:04
Привет! Вот еще темы с ответами:

Перевод из десятичной системы счисления в 2, 8, 16-ричную - C++
Всем здрасте форумчане, нужно помощь по СС, может исправите где ошибся? код// ConsoleApplication4.cpp: определяет точку входа для...

Программа обучения переводу чисел из десятичной системы счисления в 2 10 и 16 систем счисления - C++
дали задание составить программу нужно чтобы на экран выводилось это: Программа обучение переводу чисел из десятичной систем...

Перевод из десятичной системы счисления в двоичную в массиве - C++
Мне необходимо каждый элемент массива перевести из десятичной системы счисления в двоичную. При такой структуре появляется ошибка: ...

Перевод числа из десятичной системы счисления в шестнадцатеричную - C++
Выскажите вашу точку зрения по этому коду Задача: Напишите функцию, которая будет переводить числа из десятичной системы счисления в...


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

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

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