Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/30: Рейтинг темы: голосов - 30, средняя оценка - 4.93
5 / 5 / 2
Регистрация: 11.04.2011
Сообщений: 77

Перевод из 2сс в 10сс

21.06.2011, 19:51. Показов 6907. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста написать программу! Перевод дробной части 2го числа в дробное десятичное! Входное 2ое число константа задается как массив символов, выходное 10ое число типа float, т.е. входное 0,101 выходное 0,625. !Не использовать библиотечные функции
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.06.2011, 19:51
Ответы с готовыми решениями:

Программа для перевода чисел из 10сс в 2сс
Всем здорова! Вот тут такая проблема, в код написан правильно, работает, но вот, под строку вывода числа конечного зарезервировано 30...

Перевод с 2сс в любую
Помогите пожалуйста начинающему программисту написать алгоритм перевода двоичного числа в 8,10,16 системы счисления. Если можно с описанием...

Перевод из 10СС
извините за граматику!! как перевести десятичное число у q-систему счисления. например, троичную, пятиричную.q вводить с клавиатуры.и...

25
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
22.06.2011, 19:27
Студворк — интернет-сервис помощи студентам
В принципе да.
Из целого одноразрядного числа символ соответствующей цифры можно получить прибавляя к числу символ '0'.
То есть 5 + '0' == '5'
0
5 / 5 / 2
Регистрация: 11.04.2011
Сообщений: 77
22.06.2011, 19:40  [ТС]
можно использовать 2 массива 1 с типом int 2ой с char оба от 0 до 9 и сравнивая рез-тат записать в массиве результата

Добавлено через 4 минуты
А для обработки float числа использовать цикл while с условием пока есть дробная часть

Добавлено через 1 минуту
только как реализовать это условие??

Добавлено через 2 минуты
что-то типа
C++
1
2
3
4
5
6
7
i=2;
while(a"%1f"<>0)
{
b=a*10;
mas[i]=b+'0';
i++;
}
как то такто???
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
22.06.2011, 19:59
Условие в заголовке цикла какое-то странное. А так похоже.

Добавлено через 1 минуту
C
1
while (a != 0)
правда компилятор может выдавать предупреждение.

Добавлено через 45 секунд
и в самом цикле a надо изменять, иначе цикл не закончится.
0
5 / 5 / 2
Регистрация: 11.04.2011
Сообщений: 77
22.06.2011, 22:30  [ТС]
да, забыл на писать
C++
1
2
3
4
5
6
7
8
i=2;
while(a != 0)
{
int b=a*10;
mas[i]=b+'0';
a=a*10-b;
i++;
}
Добавлено через 5 минут
И как это мутировать с той программой???

Добавлено через 2 часа 16 минут
Эмм, я вот пытался переделать программу для 10 дроби float, но результат не очень краивый в конце, в чем неувязочка???
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
62
63
64
65
66
67
68
69
#include <iostream.h>
#include <iomanip.h>
 
int const BUF_SIZE = 16;
float const mas[3]={0.123,0.321,0.132};
 
Ch2fl(char *str)
{
    float value = 0;
    char *s = str;
    while (*s == '0' || *s == '1')
    {
    value *= 2;
    if (*s++ == '1')
        value += 1;
    }
     if (*s == '.')
     {
       ++s;
       float frac = 1.0f;
       while (*s == '0' || *s == '1')
       {
     frac /= 2;
     if ( *s++ == '1')
       value += frac;
     }
    }
    return value;
}
 
char *Fl2ch (float val, char *str)
{
 str[0]='0';
 str[1]='.';
 int i;
 for(i=0;i<8;i++)
 {
   int b=2*val;
   if (b==1)
   {
   str[i+2]='1';
   val=(2*val)-1;
   }
   else
   {
   str[i+2]='0';
   val *= 2;
   }
 }
 str[i+2]='\0';
 
 return str;
}
 
int main()
{
 int i;
 float tmp;
 char buf[16];
 cout<<setw(10)<<"Start"<<setw(10)<<"1step"<<setw(8)<<"End"<<'\n';
 for(i=0; i<3; i++)
 {
  tmp=mas[i];
  cout<<setw(16)<<mas[i];
  cout<<setw(16)<<Fl2ch(tmp, buf);
  cout<<setw(16)<<Ch2fl(Fl2ch(tmp, buf))<<'\n';
 }
 return 0;
}
Добавлено через 47 секунд
скорее всего проблема дибо в функции маин либо во 2 функции
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
22.06.2011, 22:41
Ну во-первых, в строке 7 не указан тип возвращаемого значения. Это ошибка, там надо указать float.
Ну а во-вторых, большинство конечных десятичных дробей в двоичной форме представляются бесконечной последовательностью. Поэтому расхождения "туда-сюда" будут тем меньше, чем больше битов будет учтено. Ну а с учётом того, что тип float способен хранить только 24 бита мантиссы, то именно столько разрядов начиная с первой единицы должно быть достаточно для устранения ошибки.
1
5 / 5 / 2
Регистрация: 11.04.2011
Сообщений: 77
22.06.2011, 22:46  [ТС]
Ой и в правду, спс вам большое за все!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.06.2011, 22:46

Перевод из 10СС в 2,8,16СС.
Не знаю как написать программу на языке си по переводу любого вводимого целого числа в 10 сс(системе счисления) в любую другую 2,8 или...

перевод из 10сс в 16сс
Всем привет!) Подкиньте пожалуйста прогу перевода из 10сс в 16сс, где функция находит в строке десятичные константы и заменяет их на...

Перевод из 10СС в любую другую
Здравствуйте! Необходим алгоритм, который переведёт число из 10СС в любую другую (до 16). Вот, что у меня получилось: int CC(int a, const...

Перевод из 2СС в 10СС
Написать функцию перевода числа из 2СС в 10СС.

Нужно найти ошибку. Перевод из 10СС в 2СС
Помогите найти ошибку. Перевод из 10СС в 2СС Вот два кода: Помогите исправить одну программу.Спасибо //выводит числа правильно, но...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru