Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 09.03.2021
Сообщений: 10

Перевод дробного двоичного числа в восьмеричную систему счисления

31.03.2021, 15:18. Показов 3872. Ответов 7
Метки с++ (Все метки)

Студворк — интернет-сервис помощи студентам
Дано дробное число в двоичной системе счисления, т.е. последовательность цифр 0 и 1, разделенных точкой. Составить программу перевода
этого числа в восьмеричную систему счисления

Помогите!
за ранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2021, 15:18
Ответы с готовыми решениями:

Перевод числа в восьмеричную систему счисления
Есть ли какая-нибудь функция, которая переводит int'овую переменную из восьмеричной системы счисления в десятичную и наоборот?

Перевод дробного числа в десятичную систему счисления
int main() { locale::global(locale("")); string ns; // дробное число в двоичной системе (с запятой) cout <<...

Перевод числа из двоичной в восьмеричную систему счисления
Надо решить следующее задание: С помощью использования логических операторов, составить программу для перевода числа из двоичной в...

7
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,254
31.03.2021, 15:27
Здравствуйте. А что промежуточная десятичная будет система или сразу по таблице переводить?
И, кстати, чем помочь?
0
0 / 0 / 0
Регистрация: 09.03.2021
Сообщений: 10
31.03.2021, 15:34  [ТС]
Сразу переводить надо.

Мне нужна программа которая будет переводить дробное число в двоичной системе счисления в восмеричное.
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
31.03.2021, 15:35
Цитата Сообщение от FFPowerMan Посмотреть сообщение
или сразу по таблице переводить
Таблица не нужна.
Начиная от точки для целой части (от конца для дробной части) последовательно выделяем тройки двоичных цифр и вычисляем соответствующую восьмеричную по формуле
d[i]*4+d[i+1]*2+d[i+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
31
32
33
34
35
#include <iostream>
#include <cstring>
using namespace std;
 
int main(){
    char* Bin="10101.111100";
    char Oct[17]={0};
    char* PosBin=Bin+strlen(Bin)-1;
    char* PosOct=Oct+15;
    do
    {
        *PosOct = *(PosBin--);
        if(*PosBin=='.'){PosOct--;break;}
        *PosOct += (*(PosBin--)-'0')*2;
        if(*PosBin=='.'){PosOct--;break;}
        *(PosOct--) += (*(PosBin--)-'0')*4;
 
    }while (*PosBin!='.');
    *(PosOct--) = '.';
    PosBin--;
    do
    {
        *PosOct = *(PosBin--);
        if(PosBin<Bin){break;}
        *PosOct += (*(PosBin--)-'0')*2;
        if(PosBin<Bin){ break;}
        *(PosOct--) += (*(PosBin--)-'0')*4;
 
    }while (PosBin>=Bin);
 
    cout<<PosOct;
 
    cin.get();
    return 0;
}
1
0 / 0 / 0
Регистрация: 09.03.2021
Сообщений: 10
31.03.2021, 15:39  [ТС]
А можете полный код написать?
Буду вам очень благодарен.
0
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,254
31.03.2021, 16:30
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
using namespace std;
 
int main()
{
    char Sym;
    unsigned int zap, len;
    int s;
    unsigned char d[3], c;
    string n, Result;
    
    /*
    cout << "Vvedite drobnoe dvoichnoe chislo ";
    cin >> n;
    */
    n = "101.001";
    
    zap = n.find('.');
    //Debug
    cout << "zap = " << zap << '\n';
    
    s = 0;
    while(zap-s)
    {
        for(c = 1; c < 4; c++)
        {
            if((zap-c-s) >= 0)
                if(n[zap-c-s] == '1')
                {
                    d[c-1] = 1;    
                    continue;
                }
            d[c-1] = 0;
        }
        Sym = (d[2]*4+d[1]*2+d[0]) + 0x30;
        Result = Sym + Result;
        s += 3;
    }
    Result += '.';
    s = 0;
    len = n.length();
    while((zap+s) < len)
    {
        for(c = 3; c > 0; c--)
        {
            if((zap+c+s) >= 0)
                if(n[zap+c+s] == '1')
                {
                    d[3-c] = 1;    
                    continue;
                }
            d[3-c] = 0;
        }
        Sym = (d[2]*4+d[1]*2+d[0]) + 0x30;
        Result += Sym;
        s += 3;
    }
    cout << "Result = " << Result << '\n';
 
    return 0;
}
1
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
31.03.2021, 21:16
Цитата Сообщение от BIBOBA Посмотреть сообщение
А можете полный код написать?
А чего по Вашему в этом коде не хватает?
0
0 / 0 / 0
Регистрация: 10.03.2022
Сообщений: 12
05.02.2023, 02:33
#include <iostream>
#include <string>

using namespace std;

string convertToOctal(string binary) {
string octal;
int decimal = 0;
int base = 1;

// Перевод двоичного числа в десятичное
for (int i = binary.length() - 1; i >= 0; i--) {
if (binary[i] == '1')
decimal += base;
base = base * 2;
}

// Перевод десятичного числа в восьмеричное
while (decimal != 0) {
int remainder = decimal % 8;
octal = to_string(remainder) + octal;
decimal = decimal / 8;
}

return octal;
}

int main() {
string binary;
cout << "Enter binary number: ";
cin >> binary;

cout << "Octal equivalent: " << convertToOctal(binary) << endl;
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.02.2023, 02:33
Помогаю со студенческими работами здесь

Перевод двоичного числа в шестнадцатеричную систему счисления
дано целое число в двоичной системе счисление,т.е. последовательность чисел 0 и 1. Составить программу перевода этого числа в...

Перевод чисел в восьмеричную систему счисления
Есть программа которая переводит число из 10сс в 8сс(по условию) Не проходит только 1 тест когда вводится 0 Я гуглил варианты как после...

Перевод из двоичной в восьмеричную систему счисления
Здравствуйте. Необходимо составить программу, которая будет запрашивать число в двоичной системе счисления и переводить его в восьмеричную...

Перевод из десятичной в восьмеричную систему счисления (в чем ошибка?)
Помогите пожалуйста , нужно составить программу , которая переводит из десятичной в восьмеричную систему счисления . Написал код , он не...

Проверка числа на восьмеричную систему счисления. C++
В общем строка char в виде восьмеричного числа. как осуществить проверку на то, что оно действительно восьмеричное? могу перевести её в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru