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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2010, 14:49   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Вопрос Система счисления

Доброго врмени суток! Вопрос по переводу из одной системы счисления в другую. Не получается сделать правильный перевод. Вот, иходник. Нужно что. Нужно, чтобы в первый Edit1 вводилось например число 8950000000, а в Form1.Caption отображалось его двоичный вид. И чтобы в Edit2 вводится двоичный вид, то в Form1.Caption отображался его десятичный вид, т.е. 8950000000. Но, исходник мой не работает
Вложения
Тип файла: zip СС.zip (206.0 Кб, 17 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 04.07.2010, 15:47   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
например число 8950000000
При вводе этого числа у меня выдаёт ошибку типа 8950000000 is not valid integer value. Решение - используйте longint.
А для обычных чисел из диапазона integer всё прекрасно работает(всё нормально отображается в Form1.Caption)
_-Re@l-_ вне форума Ответить с цитированием
Старый 04.07.2010, 16:15   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Применил этот тип, но ошибка все равно выдается:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
result:string;
dec:longint;
begin
dec:=StrToInt(Edit1.Text);
result:='';
While dec>0 do
begin
  if Odd(dec) then result:='1'+result
  else result:='0'+result;
  dec:=dec shr 1;
end;
if result='' then result:='0';
Form1.Caption:=result;
end;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 04.07.2010, 16:21   #4
zumm
БохЪ
Форумчанин
 
Аватар для zumm
 
Регистрация: 30.09.2009
Сообщений: 724
По умолчанию

мб Extendet поможет?
В планах порабощение вселенной...
zumm вне форума Ответить с цитированием
Старый 04.07.2010, 16:34   #5
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
мб Extendet поможет?
Не а, extended вещественный

Последний раз редактировалось _-Re@l-_; 04.07.2010 в 16:37.
_-Re@l-_ вне форума Ответить с цитированием
Старый 04.07.2010, 16:35   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Все равно не работает
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 04.07.2010, 16:40   #7
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

А я вот тут подумал: оно вам надо 8950000000 переводить в двоичную систему?Как по-моему, так числе из диапазона -32767...+32767 вполне достаточно
_-Re@l-_ вне форума Ответить с цитированием
Старый 04.07.2010, 16:44   #8
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Нужно именно такие числа . Полагаю, что это невозможно будет сделать.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 04.07.2010, 16:46   #9
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата из файла SysUtils
Цитата:
function StrToInt(const S: string): Integer;
Заменяем StrToInt на старый добрый val(Edit1.Text, dec, q); или StrToInt64
Ну и как заметил _-Re@l-_, увеличиваем интервал. Только не longint, а int64.
eoln вне форума Ответить с цитированием
Старый 04.07.2010, 16:48   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

_-Re@l-_, longint=integer
не применяй паскаль к Делфи.

мы давно уже не в 16-битке живем
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 04.07.2010 в 17:02.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти ошибку (система счисления на С) BlackShine Помощь студентам 0 14.05.2010 16:39
Система счисления Alex_sim Microsoft Office Excel 4 20.04.2010 14:04
система счисления с 2 в 16 never smile Помощь студентам 0 19.03.2010 16:30
троичная система счисления elena_ma Помощь студентам 0 29.11.2009 20:48
двоичная система счисления galaid Паскаль, Turbo Pascal, PascalABC.NET 3 17.05.2009 15:42