Вопрос C++ Система счисления (дробные числа)

Регистрация
6 Авг 2013
Сообщения
92
Репутация
-3
Спасибо
0
Монет
0
Перевести из 10-й в 8-ю систему счисление дробное число

(есть код, но он работает только с целыми числами).

Как сделать что бы он работал и с дробными числами?

---

#include <iostream>



using namespace std;



int main()

{

setlocale(LC_ALL, "rus");

int n, b, k, c,i=1;

cout << "Введите число в 10-ой системе счисления" << endl;

cin >> n;

k = 1;

c = 0;

while (n > 0)

{

b = n % 8; //остаток от деления на 8

n /= 8; //деление на 8 (уменьшение)

c += b * pow(10, k - 1); //остаток от деления умножить на 10 в степени к-1

b = 0; //для того что бы можно было вновь занести остаток при делении на 8

k++; //увеличение на 1 (для степени)

}

cout <<"В 8-ой системе счисления: "<< c <<endl;

return 0;

}
 
Помножь исходное число на, скажем 8^6 степени, переведи это целое в восьмеричную систему и сдвинь потом точку на 6 разрядов.
 
Пожалуйста имейте ввиду, что этот пользователь забанен
8.16 - переводишь 8 - получаем 1, и переводишь 16 = 2 и в ответе 1,2 по-моему так. Проверить в калькуляторе можно
 
Кому как нравится, лично я бы переводил из двоичной системы счисления в восьмеричную.

Просто десятичная система используется в исходных текстах для удобства людей, а машина всегда представляет числа в двоичном коде; трансляция из десятичного представления в двоичное происходит автоматически.
 
не знаю поможет или нет, отдели дробную часть от числа переведи её в восьмеричное число потом раздели это число на количество дробных чисел, там 6.21 то раздели на 100 а потом прибавь к не дробному числа, результат деления переведённого дробно числа делённого на 100
 
Я не знаю что значит 10 и 8 счисления эти, но наверное, переменные в int сделай double или float а потом ответ отконвертируй так же флот или дабл
 
Назад
Сверху