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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2007, 21:00   #1
Informer
Пользователь
 
Регистрация: 21.11.2007
Сообщений: 11
Сообщение перевести числа с одной системы счисления в другую

Кому не тяжело, напишите программку для перевода чисел с одной системы счисления в другую до 16ричной, заранее большое спасибо
Informer вне форума Ответить с цитированием
Старый 22.11.2007, 03:26   #2
SalasAndriy
Форумчанин Подтвердите свой е-майл
 
Аватар для SalasAndriy
 
Регистрация: 01.11.2007
Сообщений: 157
По умолчанию

Доброго времени суток! Попробуй калькулятором в Windows переводить. Мне конечно не влом её написать но все же калькулятор штука по удобнее. Я сам пользуюсь.

Там просто пишеш число, а потом слева есть кнопки ("Hex" - шестнадцатеричная система счисления, "Dec" - десятичная, "Oct" - восьмеричная, "Bin" - доичная). Только "Вид" должен быть настроен как
"Инженерный". Буду рад если чем-то помог!
SalasAndriy вне форума Ответить с цитированием
Старый 23.11.2007, 15:53   #3
Informer
Пользователь
 
Регистрация: 21.11.2007
Сообщений: 11
По умолчанию

мне просто нужен сам текст программы, это для курсовой)
Informer вне форума Ответить с цитированием
Старый 23.11.2007, 16:21   #4
Vasya
Форумчанин Подтвердите свой е-майл
 
Аватар для Vasya
 
Регистрация: 21.01.2007
Сообщений: 193
По умолчанию

вот пример процедуры для перевода из 16-й в любую другую систему счисления:
Код:
  function BaseConvert(NumIn: string; BaseIn: Byte; BaseOut: Byte): string;
var
  i: integer;
  currentCharacter: char;
  CharacterValue: Integer;
  PlaceValue: Integer;
  RunningTotal: Double;
  Remainder: Double;
  BaseOutDouble: Double;
  NumInCaps: string;  
  s: string;  
begin
  if (NumIn = '') or (BaseIn < 2) or (BaseIn > 36) or (BaseOut < 1) or (BaseOut > 36) then  
  begin  
    Result := 'Error';
    Exit;  
  end;  

  NumInCaps    := UpperCase(NumIn);  
  PlaceValue   := Length(NumInCaps);  
  RunningTotal := 0;

  for i := 1 to Length(NumInCaps) do  
  begin
    PlaceValue       := PlaceValue - 1;  
    CurrentCharacter := NumInCaps[i];  
    CharacterValue   := 0;
    if (Ord(CurrentCharacter) > 64) and (Ord(CurrentCharacter) < 91) then  
      CharacterValue := Ord(CurrentCharacter) - 55;  

    if CharacterValue = 0 then  
      if (Ord(CurrentCharacter) < 48) or (Ord(CurrentCharacter) > 57) then  
      begin
        BaseConvert := 'Error';  
        Exit;  
      end
      else  
        CharacterValue := Ord(CurrentCharacter);  

    if (CharacterValue < 0) or (CharacterValue > BaseIn - 1) then  
    begin  
      BaseConvert := 'Error';
      Exit;  
    end;  
    RunningTotal := RunningTotal + CharacterValue * (Power(BaseIn, PlaceValue));
  end;  

  while RunningTotal > 0 do
  begin
    BaseOutDouble := BaseOut;
    Remainder     := RunningTotal - (int(RunningTotal / BaseOutDouble) * BaseOutDouble);
    RunningTotal  := (RunningTotal - Remainder) / BaseOut;

    if Remainder >= 10 then
      CurrentCharacter := Chr(Trunc(Remainder + 55))
    else
    begin  
      s := IntToStr(trunc(remainder));
      CurrentCharacter := s[Length(s)];  
    end;  
    Result := CurrentCharacter + Result;
  end;  
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
    Label1.Caption:=BaseConvert('A', 16, 2);
end;
взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php
Vasya вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из одной системы исчисления в другую. Svop Помощь студентам 7 20.12.2010 19:00
Перевод целых чисел из одной системы счисления в другую =LeonZone= Помощь студентам 19 12.12.2010 16:18
Программа перевода из одной системы счисления в другую - Turbo Pascal 7.0. Prescott Помощь студентам 5 19.03.2010 19:26
Перевод из одной системы счисления в другую Sky_VSUH Помощь студентам 1 28.02.2008 20:18