С Новым годом! Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 05.12.2013
Сообщений: 6
1

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

11.12.2013, 08:34. Показов 3075. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Перевести десятичную дробь в двоичную систему счисления while или repeat
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2013, 08:34
Ответы с готовыми решениями:

Перевести число в двоичную систему счисления
Помогите пжл. Составить программу, которая каждое число из цикла переводит в двоичную систему...

Перевести число из восьмеричной системы в десятичную систему счисления
написать программу помогите пож-та)

Перевод в десятичную систему счисления
Составить программу перевода числа из любой системы счисления в десятичную. Число А.

Перевод чисел в десятичную систему счисления
Задание: Написать программу перевода следующих чисел 10000011; 1010000110; 101100110,011011;...

1
79 / 79 / 84
Регистрация: 26.09.2012
Сообщений: 341
11.12.2013, 15:27 2
Лучший ответ Сообщение было отмечено kondak как решение

Решение

kondak,

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
program Project1;
 
(*Переводит десятичную запись вещественного числа в двоичную.
Точность перевода дробной части - до aPrecision цифр после запятой.*)
function DecToBin(const aStr : String; const aPrecision : Byte) : String;
const
  BaseIn = 10;
  BaseOut = 2;
var
  i, PosDot : Integer;
  StrRes, vStr, StrSign, StrDot : String;
  Num, TmpNum, Weight : Extended;
begin
  DecToBin := '';
  if aStr = '' then Exit;
 
  (*Перевод десятичной записи в число.*)
 
  (*Определяем знак и десятичную запись числа без знака.*)
  if aStr[1] = '-' then begin
    StrSign := '-';
    vStr := Copy(aStr, 2, Length(aStr) - 1);
  end else begin
    StrSign := '';
    vStr := aStr;
  end;
 
  (*Ищем дробную точку.*)
  PosDot := Length(vStr) + 1;
  for i := 1 to Length(vStr) do begin
    if vStr[i] in ['.', ','] then begin
      PosDot := i;
      StrDot := vStr[i];
      Break;
    end;
  end;
 
  Num := 0;
 
  (*Переводим в число запись целой части.*)
  (*Движемся от младших разрядов - к старшим.*)
  (*Вес младшего разряда в целой части.*)
  Weight := 1;
  for i := PosDot - 1 downto 1 do begin
    case vStr[i] of
      '0'  : Num := Num + 0 * Weight; (*Эту строку можно закоментовать.*)
      '1'  : Num := Num + 1 * Weight;
      '2'  : Num := Num + 2 * Weight;
      '3'  : Num := Num + 3 * Weight;
      '4'  : Num := Num + 4 * Weight;
      '5'  : Num := Num + 5 * Weight;
      '6'  : Num := Num + 6 * Weight;
      '7'  : Num := Num + 7 * Weight;
      '8'  : Num := Num + 8 * Weight;
      '9'  : Num := Num + 9 * Weight;
    else
      Writeln('Ошибка! Незарегистрированная цифра.');
    end;
    (*Вес следующего разряда.*)
    Weight := Weight * BaseIn;
  end;
 
  (*Переводим в число запись дробной части.*)
  (*Движемся от старших разрядов - к младшим.*)
  (*Вес старшего разряда в дробной части.*)
  Weight := 1 / BaseIn;
  for i := PosDot + 1 to Length(vStr) do begin
    case vStr[i] of
      '0'  : Num := Num + 0 * Weight; (*Эту строку можно закоментовать.*)
      '1'  : Num := Num + 1 * Weight;
      '2'  : Num := Num + 2 * Weight;
      '3'  : Num := Num + 3 * Weight;
      '4'  : Num := Num + 4 * Weight;
      '5'  : Num := Num + 5 * Weight;
      '6'  : Num := Num + 6 * Weight;
      '7'  : Num := Num + 7 * Weight;
      '8'  : Num := Num + 8 * Weight;
      '9'  : Num := Num + 9 * Weight;
    else
      Writeln('Ошибка! Незарегистрированная цифра.');
    end;
    (*Вес следующего разряда.*)
    Weight := Weight / BaseIn;
  end;
 
  (*Переводим число в двоичную запись.*)
 
  StrRes := '';
 
  (*Перевод целой части.*)
  TmpNum := Int(Num);
  repeat
    (*Определяем очередную двоичную цифру.*)
    (*Аналог (TmpNum mod BaseOut) для случая вещественных операндов.*)
    case Round( TmpNum - Int(TmpNum / BaseOut) * BaseOut ) of
      0 :  StrRes := '0' + StrRes;
      1 :  StrRes := '1' + StrRes;
    end;
    (*Удаляем из числа текущий разряд.*)
    TmpNum := Int(TmpNum / BaseOut);
  until TmpNum = 0;
 
  (*Перевод дробной части с точностью до aPrecision знаков после запятой.*)
  i := 0;
  TmpNum := Frac(Num);
  while (TmpNum <> 0) and (aPrecision > i) do begin
    if i = 0 then StrRes := StrRes + StrDot;
    (*Определяем очередную двоичную цифру.*)
    TmpNum := TmpNum * BaseOut;
    case Round(Int(TmpNum)) of
      0 :  StrRes := StrRes + '0';
      1 :  StrRes := StrRes + '1';
    end;
    (*Удаляем из числа текущий старший разряд.*)
    TmpNum := Frac(TmpNum);
    Inc(i);
  end;
 
  DecToBin := StrSign + StrRes;
end;
 
const
  Precision = 10;
var
  S : String;
begin
  repeat
    Writeln('Введите запись вещественного числа в десятичной системе счисления:');
    Readln(S);
    S := DecToBin(S, Precision);
    Writeln('Запись этого же числа в двоичной системе счисления');
    Writeln('с точностью до ', Precision, ' цифр после запятой:');
    Writeln(S);
    Writeln('Повторить - Enter, выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
0
11.12.2013, 15:27
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.12.2013, 15:27
Помогаю со студенческими работами здесь

Перевод из двоичной в десятичную систему счисления
Помогите найти ошибку. var bin: string; dec: longint; i,j: byte; begin

Перевод числа в двоичную систему счисления
Подскажите пжл. Program U; Uses Crt; Var d,j:Byte; Function DS(z:Byte):Byte; Var i:Byte; ...

Перевод IP-адреса в двоичную систему счисления
Ребят,у меня проблема.Вот задача:Известно, что IP-адрес записывается в нескольких вариантах....

Системы счисления. Перевести данное натуральное число в 16-тиричную систему счисления
Составить программу перевода данного натурального числа n в 16теричную систему счисления....


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru