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

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

Восстановить пароль Регистрация
 
Evgeni Gromov
0 / 0 / 0
Регистрация: 12.05.2014
Сообщений: 10
12.05.2014, 21:25     Перевод чисел из десятичной системы счисления в 2, 8 и 16 #1
Всем привет,нужна помощь. Помогите,пожалуйста.
Нужно перевести из десятичной системы счисления в другую(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++ Перевод числа из десятичной системы счисления в двоичную.
C++ Перевод числа из десятичной системы счисления в двоичную
Перевод числа N из десятичной системы счисления в восьмиричную C++
C++ Перевод числа из десятичной системы счисления в двоичную
C++ Перевод числа из десятичной системы счисления в шестнадцатеричную
Перевод из десятичной системы счисления в двоичную в массиве C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4441 / 3779 / 1278
Регистрация: 14.04.2014
Сообщений: 14,872
12.05.2014, 21:36     Перевод чисел из десятичной системы счисления в 2, 8 и 16 #2
Ты не можешь перевести одной операцией, так как требуется обработка каждого разряда, т. е. цикл.
Evgeni Gromov
0 / 0 / 0
Регистрация: 12.05.2014
Сообщений: 10
12.05.2014, 21:54  [ТС]     Перевод чисел из десятичной системы счисления в 2, 8 и 16 #3
nmcf,а можешь подсказать как это сделать,я просто в с++ не шарю
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
12.05.2014, 22:01     Перевод чисел из десятичной системы счисления в 2, 8 и 16 #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  [ТС]     Перевод чисел из десятичной системы счисления в 2, 8 и 16 #5
мне бы с тем вариантом сделать
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
12.05.2014, 22:28     Перевод чисел из десятичной системы счисления в 2, 8 и 16 #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  [ТС]     Перевод чисел из десятичной системы счисления в 2, 8 и 16 #7
а как сделать,чтобы число и основание выбирал пользователь?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2014, 23:04     Перевод чисел из десятичной системы счисления в 2, 8 и 16
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
12.05.2014, 23:04     Перевод чисел из десятичной системы счисления в 2, 8 и 16 #8
Evgeni Gromov, в первом же сообщении есть код.
Yandex
Объявления
12.05.2014, 23:04     Перевод чисел из десятичной системы счисления в 2, 8 и 16
Ответ Создать тему
Опции темы

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