Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 02.10.2018
Сообщений: 8

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

02.10.2018, 20:57. Показов 1659. Ответов 2

Студворк — интернет-сервис помощи студентам
Дано дробное число в двоичной системе счисления, т.е. последовательность цифр 0 и 1, разделенных точкой(пример: 1001.1101). Составить программу перевода этого числа в десятичную систему счисления.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.10.2018, 20:57
Ответы с готовыми решениями:

Написать программу перевода числа из двоичного кода в прямой, обратный и дополнительный
Нужно дописать последнюю операцию для данной программы , не могу найти функцию , которая бы переводила в дополнительный код program...

Перевод дробного числа из десятичной системы в двоичную
Здравствуйте, наткнулся на такую задачу:scratch:, нужно перевести десятичное число в двоичную систему, вот подробнее... "Дано...

Перевод двоичного дробного числа в десятичную систему счисления
Как на TASM перевести десятичную дробь из двоичной в десятичную систему счисления?

2
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
03.10.2018, 05:25
Pascal
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
{$mode objfpc}
const digit:string[16]='0123456789ABCDEF';
 
function ToDec(n:string;r:Int64):Int64;
var
  m:Int64;
  i:longint;
begin
Result:=0;
if n<>'' then begin
  m:=0;
  while pos('0',n)=1 do  delete(n,1,1);
    for i:=1 to length(n) do m:=m*r+pos(n[i],digit)-1;
    if (m>=high(Int64)) or (m<0) then begin
      writeln('превышен предел');
      m:=0;
    end;
    Result:=m;
  end;
end;
 
function ToDecNew(n:string;r:Integer):extended;
var
  f:extended;
  i:integer;
  r1:int64;
begin
    i:=pos('.',n);
    if i>0 then begin
    f:=ToDec(copy(n,1,i-1),r);
    delete(n,1,i);
    r1:=r;
    for i:=1 to length(n) do begin
      f:=f+(pos(n[i],digit)-1)/r1;
      r1:=r1*r;
    end;
    Result:=f;
 
  end else Result:=ToDec(n,r);
 
end;
var
  s:string;
  r:integer;
begin
  writeln('перевод чисел из систем счисления(2-16) в десятичную');
  write('Введите число:');
  readln(s);
  write('основание системы счисления:');
  readln(r);
  writeln('Результат:',ToDecNew(s,r):20:10);
end.
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
03.10.2018, 05:54
Pascal
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
function intPart(d : String) : String;
begin
  d := d.TrimStart('0');
  if d.Length = 0 then
    Result := '0'
  else
    begin
      var r := Biginteger.Zero;
      foreach var c in d do
        begin
          r *= 2;
          if c = '1' then r += 1;
        end;
      Result := r.ToString;
    end;
end;
 
function fracPart(d : String) : String;
begin
  d := d.TrimEnd('0');
  if d.Length = 0 then
    Exit;
  var b := Biginteger.One;
  var r := Biginteger.Zero;
  foreach var c in d do
    begin
      b *= 5;
      r *= 10;
      if c = '1' then r += b;
    end;
  Result := r.ToString;
end;
 
begin
  var d := ReadLnString;
  var res : String;
  if d.Count(c -> '01.'.IndexOf(c) < 0) > 0 then
    Res := 'Косяк: недопустимые символы.'
  else
    case d.Count(c -> c = '.') of
      0 : /// это целое число
          res := intPart(d);
      1 : /// это дробное число
          begin
            res := fracPart(d.ToWords('.')[1]);
            if res.Length > 0 then res := '.' + res;
            res := intPart(d.ToWords('.')[0]) + res;
          end;
    else
      res := 'Косяк: в числе точка может быть только одна.';
    end;
  WriteLn(res);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.10.2018, 05:54
Помогаю со студенческими работами здесь

Написать программу, результат работы которой - округление дробного числа до целого по математическим правилам.
Здравствуйте, Друзья. Задание: Написать программу, результат работы которой - округление дробного числа до целого по математическим...

Написать программу деления двоичного числа А на десятичное число 2k
Ввести с клавиатуры два числа: двоичное число А и десятичное число k. Написать программу деления числа А на число 2k. Вывести...

Написать программу для перевода из восьмиразрядного двоичного числа в десятичное
Задача сдесь состоит в том что нужно написать программу для перевоа из восьмиразрядного двоичного числа в десятичное. program 1; ...

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

Перевод дробного числа в HEX
снова типовая задачка для пятых классов вызывает затруднения))) есть число 0.00012207 как его перевести в шеснадцатиричную систему?...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru