Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2009, 17:30   #1
astrozombie
Пользователь
 
Аватар для astrozombie
 
Регистрация: 16.02.2009
Сообщений: 12
По умолчанию двоичное число→десятичное

Люди добрые,помогите с програмкой,я сам че то не соображу,что бы придумать.Задание таково: составить подпрограму преобразования целого двоичного числа в десятичное,используя эту подпрограмму составить программу перевода двоичных чисел в десятичное
p.s. чето припоминаю...вроде есть такая команда dec или нет..
astrozombie вне форума Ответить с цитированием
Старый 04.05.2009, 17:32   #2
crystalbit
ГОСТ 2.403-75
Пользователь
 
Аватар для crystalbit
 
Регистрация: 04.05.2009
Сообщений: 92
По умолчанию

такой команды нет, но там достаточно простой алгоритм, что-то со степенями двойки, я сам это делал, да и забыл и потерял)
там примерно так: справа по порядку умножаем на два в степени 0, 1, 2, ... и считаем сумму, это и будет число
мой скромный delphi блог
crystalbit вне форума Ответить с цитированием
Старый 05.05.2009, 12:25   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Попробуй так
Код:
function IntToBin(n:Integer):String;
 begin
  Result:='';
  while n<>0 do
  begin
   if n and 1=0 then Result:='0'+Result else Result:='1'+Result;
   n:=n shr 1;
  end;
 end;
SERG1980 вне форума Ответить с цитированием
Старый 05.05.2009, 18:03   #4
crystalbit
ГОСТ 2.403-75
Пользователь
 
Аватар для crystalbit
 
Регистрация: 04.05.2009
Сообщений: 92
По умолчанию

SERG1980, ТС надо наоборот
как-то так:
Код:
function BinToDec(bin:string):integer;
var
  i,l:integer;
begin
  Result:=0;
  l:=Length(bin);
  for i:=l downto 1 do
    Result:=Result+Round(IntPower(2,l-i))*StrToInt(bin[i]);
end;
мой скромный delphi блог
crystalbit вне форума Ответить с цитированием
Старый 06.05.2009, 08:32   #5
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
function BinToInt(BinStr:string):Integer;
 var i:integer;
 begin
  Result:=0;
  for i := 1 to Length(BinStr) do
  begin
   if not (BinStr[i]in['0','1']) then//проверка на правильность ввода
   begin
    Result:=0;
    exit;
   end;
   Result:=(Result shl 1)+(byte(BinStr[i])and 1);
  end;
 end;
SERG1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевести целое положительное десятичное число в шестнадцатеричное счисление Alfis Паскаль, Turbo Pascal, PascalABC.NET 3 28.12.2008 20:40
Двоичное дерево afeg Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2008 14:49
Необходимо представить десятичное число в двоичном виде Xardas Паскаль, Turbo Pascal, PascalABC.NET 2 26.01.2008 00:54
ВВести десятичное число N и вывести таблицу чисел от 1 до N и их двоичный эквивалент XpideX Общие вопросы C/C++ 5 04.01.2008 19:30
нужна функция WinApi, которая переводит десятичное число в шестнадцатиричное??? Morskoivolk Win Api 3 02.04.2007 18:14