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

Программа перевода систем счисления - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 86, средняя оценка - 4.64
KapaRZA
0 / 0 / 0
Регистрация: 19.01.2011
Сообщений: 10
02.02.2011, 00:21     Программа перевода систем счисления #1
Не могу написать программу по переводу числа из 10-ой в 2-ую. Смотрел другие темы не понял да и программы там не понятные были.
Если поможете, то не могли бы написать комментарии чтобы мне было понятно (я только учусь)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2011, 00:21     Программа перевода систем счисления
Посмотрите здесь:

Программа для перевода данного натурального числа в N-ную систему счисления C++
функции для перевода из разных систем счисления C++
C++ Программа для перевода из одной системы счисления в другую.
Программа перевода в двоичную систему счисления C++
Программа перевода целого числа без знака в двоичную систему счисления C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
generak13
Сообщений: n/a
02.02.2011, 00:36     Программа перевода систем счисления #2
Если толь цельіе то алгоритм прост: делить число на 2. Потом результат делиш на 2 пока он будет больше 2. Результаттом будет число, что состоит из цьіфр остатков от деления в зворотном порядке.
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
02.02.2011, 10:31     Программа перевода систем счисления #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "Russian");
    int a, b=0, k=1;
    cout<<"Введите десятичное число: ";
    cin>>a;
    while (a) //пока а!=0
    {
        b+=a%2*k; //двоичное число = остаток от деления десятичного 
        //числа на 2 (это, думаю, понятно) * k (разряд) +то, что было в b
        a/=2; //само деление а на 2
        k*=10; //увеличение разряда
    }
    cout<<"Двоичное число: "<<b<<endl;
 
    return 0;
}
Попробуйте этим алгоритмом самостоятельно перевести число, думаю, все станет совсем понятно)
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
02.02.2011, 11:03     Программа перевода систем счисления #4
Результат лучше записывать в char* или string, а то разрядов может не хватить.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
 
using namespace std;
 
string dectobin(int num) // функция для перевода
{
    string result; // строка для результата
    for (; num!=0; num>>=1) // цикл со сдвигом вправо на 1 бит (работает быстрее чем деление на 2,
         //но также делит)
        result.insert(0, num&1 ? "1" : "0"); // вставка цифры в начало строки (1 если последний бит 1, 0 если 0)
    return result; // возврат результата
}
 
int main(int argc, char *argv[])
{
        // тут думаю понятно, ввод данных и вызов функции
    int num;
    cout<<"Enter number: ";
    cin>>num;
    cout<<dectobin(num);
    return 0;
}
Yandex
Объявления
02.02.2011, 11:03     Программа перевода систем счисления
Ответ Создать тему
Опции темы

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