Перевод из любой системы счисления в любую на C++
Существует множество способов представления чисел - десятичная, двоичная, восьмеричная, шестнадцатеричная и др. Иногда возникает необходимость перевода чисел из одной системы счисления в другую. В этой статье мы рассмотрим, как осуществить такой перевод на языке программирования C++.
Перевод из десятичной системы счисления в другую
Необходимость перевода числа из десятичной системы в другую возникает, например, при работе с аппаратурой или при программировании микроконтроллеров. Для перевода десятичного числа в двоичную, восьмеричную или шестнадцатеричную систему счисления можно использовать встроенные функции языка.
Перевод в двоичную систему счисления
Для перевода десятичного числа в двоичную систему счисления можно использовать функцию bitset<размер>
. Размер - это количество бит, которые будут занимать двоичное число. Например, bitset<8>
создаст объект, который будет занимать 8 бит.
#include <bitset>
#include <iostream>
using namespace std;
int main()
{
int dec = 19; // десятичное число
// перевод в двоичную систему счисления
bitset<8> bin(dec);
cout << "Десятичное число " << dec << " в двоичной системе счисления: " << bin << endl;
return 0;
}
Перевод в восьмеричную систему счисления
Для перевода десятичного числа в восьмеричную систему счисления можно воспользоваться функцией oct
. Эта функция принимает на вход десятичное число и возвращает его представление в восьмеричной системе счисления в виде строки.
#include <iostream>
using namespace std;
int main()
{
int dec = 19; // десятичное число
// перевод в восьмеричную систему счисления
cout << "Десятичное число " << dec << " в восьмеричной системе счисления: " << oct << dec << endl;
return 0;
}
Перевод в шестнадцатеричную систему счисления
Для перевода десятичного числа в шестнадцатеричную систему счисления можно воспользоваться функцией hex
. Эта функция принимает на вход десятичное число и возвращает его представление в шестнадцатеричной системе счисления в виде строки.
#include <iostream>
using namespace std;
int main()
{
int dec = 19; // десятичное число
// перевод в шестнадцатеричную систему счисления
cout << "Десятичное число " << dec << " в шестнадцатеричной системе счисления: " << hex << dec << endl;
return 0;
}
Перевод из любой системы счисления в десятичную
Для перевода числа из любой системы счисления в десятичную мы можем воспользоваться циклом и формулой, основанной на разложении числа по разрядам.
#include <iostream>
#include <cmath> // для функции pow
using namespace std;
int main()
{
int number = 1010; // число в двоичной системе счисления
int base = 2; // основание системы счисления
int power = 0;
int decimal = 0;
// перевод в десятичную систему счисления
while (number != 0) {
decimal += (number % 10) * pow(base, power);
++power;
number /= 10;
}
cout << "Число в десятичной системе счисления: " << decimal << endl;
return 0;
}
Перевод из одной системы счисления в другую
Для перевода числа из одной системы счисления в другую мы можем воспользоваться алгоритмом, основанным на разложении числа по разрядам и формуле, с помощью которой можно получить значение каждого разряда.
#include <iostream>
#include <cmath> // для функции pow
using namespace std;
int main()
{
int number = 19; // десятичное число
int from_base = 10; // исходная система счисления
int to_base = 2; // целевая система счисления
int power = 0;
int result = 0;
// перевод в целевую систему счисления
while (number != 0) {
result += (number % to_base) * pow(from_base, power);
++power;
number /= to_base;
}
cout << "Число " << number << " в системе счисления " << from_base << " в системе счисления " << to_base << ": " << result << endl;
return 0;
}
Заключение
Перевод чисел из одной системы счисления в другую - важная задача в компьютерной науке. Надеемся, что вам было полезно узнать, как реализовать эту задачу на языке программирования C++.
- Девчёнки, а давайте начистоту, что вам от мужчины надо?
- С какой стати?
- До чего можно додуматься, если думать два часа о том же, что и вы?
- Что вы думаете о мужиках, которые сидят в сети под женскими никами?
- Человек в футляре: Образы Вреньки и её брата
- Предложение вскрыть почтовый ящик в интернете за деньги это лохотрон?