Другие языки программирования и технологии
Представьте число 41 в восьмеричной системесчисления. Укажите оъём алфавита.
+ кол-во информации, которая может быть передана с помощью этого алфавита
Программа преобразования систем счисления
#include <string>
#include <iostream>
using namespace std;
char ntoa(int n) // преобразование номера цифры в символ
{
if ((n >= 0) && (n <= 9))
return '0' + n;
else
return 'A' - 10 + n;
}
int aton(char a) // преобразование символа в номер цифры
{
if ((a >= '0') && (a <= '9'))
return a - '0';
else if ((a >= 'a') && (a <= 'z'))
return a - 'a' + 10;
else
return a - 'A' + 10;
}
// Преобразование из одной системы счисления в другую
// s - число в системе счисления по основанию fs
// функция возвращает число в системе счисления fd
string conv(string s, int fs, int fd)
{
int A = 0;
for (unsigned int i = 0; i < s.length(); i++)
{
char a;
a = aton(s);
if ((a >= 0) && (a <= fs))
A = A * fs + a;
else
return "number has uncorrect format";
// число в неверном формате
}
string sd = "";
while (A != 0)
{
sd = ntoa(A % fd) + sd;
A /= fd;
}
return sd;
}
int main(int argc, char* argv[])
{
while (true)
{
string s;
int fs, fd;
cout << "Enter number, base and convert base: ";
// Введите число, основание и основание конвертирования
cin >> s >> fs >> fd;
cout << conv(s, fs, fd) << endl;
}
return 0;
}
#include <string>
#include <iostream>
using namespace std;
char ntoa(int n) // преобразование номера цифры в символ
{
if ((n >= 0) && (n <= 9))
return '0' + n;
else
return 'A' - 10 + n;
}
int aton(char a) // преобразование символа в номер цифры
{
if ((a >= '0') && (a <= '9'))
return a - '0';
else if ((a >= 'a') && (a <= 'z'))
return a - 'a' + 10;
else
return a - 'A' + 10;
}
// Преобразование из одной системы счисления в другую
// s - число в системе счисления по основанию fs
// функция возвращает число в системе счисления fd
string conv(string s, int fs, int fd)
{
int A = 0;
for (unsigned int i = 0; i < s.length(); i++)
{
char a;
a = aton(s);
if ((a >= 0) && (a <= fs))
A = A * fs + a;
else
return "number has uncorrect format";
// число в неверном формате
}
string sd = "";
while (A != 0)
{
sd = ntoa(A % fd) + sd;
A /= fd;
}
return sd;
}
int main(int argc, char* argv[])
{
while (true)
{
string s;
int fs, fd;
cout << "Enter number, base and convert base: ";
// Введите число, основание и основание конвертирования
cin >> s >> fs >> fd;
cout << conv(s, fs, fd) << endl;
}
return 0;
}
48d=101oct
Похожие вопросы
- перевод чисел в двоичную,восьмеричную системы счисления
- Как перевести числа в двоичную, восьмеричную и шестнадцатиричную? вот эти число помогите)) 312,96?277,76?246,92?
- как представить число в двоичном n-разрядном представлении
- задача pascal. представить число в виде всех возможных сумм.
- Как при восьмеричном коде компьютер понимает сколько знаков (цифр) в числе?
- Вычитание восьмеричных чисел
- Представить заданные вещественные числа А и В в формате с плавающей точкой.
- Используя Правило Счета, запишите первые 20 целых чисел в десятичной, двоичной, троичной, пятеричной и восьмеричной сист
- Перевести числа 57 и 13 из десятичной системы счисления в:двоичную, пятеричную, восьмеричную, шестнадцатеричную?
- Перевести число 0,35 из десятичной системы в восьмеричную