Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
suslikman98
0 / 0 / 0
Регистрация: 09.11.2016
Сообщений: 17
1

Двоичные и десятичные системы исчисления

25.04.2017, 17:49. Просмотров 135. Ответов 5
Метки нет (Все метки)

Здравствуйте , нужен простой вариант функции bintodec. Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2017, 17:49
Ответы с готовыми решениями:

системы исчисления
напишите пожалуйста как перевести число из 8ричной системы в 16ричную

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

Формулы двоичные
Составить алгоритм, записанный в виде блок-схемы для вычисления суммы следующего ряда с точностью...

Двоичные деревья, хеш таблицы
Доброго времени суток! Помогите пожалуйста со следующими задачами. 1). Программа создает двоичное...

из 10 в 16 систему исчисления
Доброго времени суток! Помогите пожалуйста число введенное с клавиатуры из десятичной системы...

5
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
3881 / 2863 / 3639
Регистрация: 05.06.2014
Сообщений: 14,067
25.04.2017, 18:31 2
А эта тема чем не устроила?
Перевод в различные системы счисления
0
VladimirD
74 / 74 / 78
Регистрация: 30.12.2015
Сообщений: 226
26.04.2017, 08:22 3
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
program ddd;
 
function BinToDec(x:integer):integer;
var n,c,d,m:integer;
begin
  n:=1; m:=0;
  repeat
    c:=x mod 10; 
    d:=x div 10;
    x:=d;m:=m+n*c;n:=n*2;
  until d=0;
  BinToDec:=m;
end;
 
var a:integer; 
begin 
  a:=BinToDec(10101);
  writeln(a);     
end.
0
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
3897 / 2557 / 2082
Регистрация: 22.11.2013
Сообщений: 7,150
26.04.2017, 08:49 4
VladimirD,
тогда уж:
Pascal
1
2
3
4
5
6
7
8
9
10
11
function BinToDec(x: Longint): Integer;
var n, m: Integer;
begin
  m:=0; n:=1;
  repeat
    m:=m+x mod 10*n;
    n:=n*2;
    x:=x div 10;
  until x=0;
  BinToDec:=m;
end;
Но все-равно малоэффективно, максимальное десятичное число в подобном варианте 1023.
Лучше строки:
Pascal
1
2
3
4
5
6
7
function BinToDec(const x: String): Longint;
var r, i: Integer;
begin
  r:=0; for i:=1 to Length(x) do
    if s[i] in ['0','1'] then r:=r*2+Ord(s[i]='1');
  BinToDec:=r;
end;
0
VladimirD
74 / 74 / 78
Регистрация: 30.12.2015
Сообщений: 226
26.04.2017, 11:03 5
bormant, согласен. Я впервые перевод делал.

Добавлено через 1 час 46 минут
мы же знаем что переводим бинарное число то от условия можно отказаться

Pascal
1
2
3
4
5
6
function BinToDec(const x: String): Longint;
var r, i: Integer;
begin
  r:=0; for i:=1 to Length(x) do r:=r*2+Ord(x[i]='1');
  BinToDec:=r;
end;
0
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
3897 / 2557 / 2082
Регистрация: 22.11.2013
Сообщений: 7,150
26.04.2017, 11:08 6
Цитата Сообщение от VladimirD Посмотреть сообщение
от условия можно отказаться
Можно-то можно, но станет выдавать ошибочные результаты на форматированных числах, считая "не 1" за 0, наподобие:
Pascal
1
  WriteLn(BinToDec('1010 1111'));
0
26.04.2017, 11:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2017, 11:08

Разработать подпрограмму, позволяющую распознавать двоичные числа.
Разработать подпрограмму, позволяющую распознавать двоичные числа. Используя созданную...

двоичные файлы...Определить, входит ли в файл сочетание abcdefgh.
Дан символьный файл f. Определить, входит ли в файл сочетание abcdefgh. не могу...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru