Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Очередной тупой вопрос [D7, XP]


Тупак ©   (2006-08-21 20:59:00) 

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


Zeqfreed   (2006-08-21 22:27:00) [1]

> [9] begin...end ©   (21.08.06 21:38)

Ну да, я имел в виду, что последний раз можно не делить. Никак что-то мой мозг не хочет принимать то, что 2/4 = 0 + 2 в остатке, хотя понять и объяснить я это могу :)


Ketmar   (2006-08-21 22:06:00) [2]

"всё отнять и поделить!" (ц)

извиняюсь за оффтоп...


Anatoly Podgoretsky   (2006-08-21 22:04:00) [3]

Делить, делить


begin...end   (2006-08-21 21:38:00) [4]

> tesseract ©   (21.08.06 21:19) [6]

Да, конечно. В случае дробей по алгоритму [3] переводится только целая часть числа. Дробная же часть переводится последовательным её умножением на основание с выделением целых частей результата.

> Zeqfreed ©   (21.08.06 21:22) [7]

Я говорил о том, как составить представление по остаткам от деления на основание, поэтому по алгоритму [3] делить нужно всё же именно до тех пор, пока не останется 0 (см. примеры в [8]). Хотя, разумеется, псоледний раз можно и не делить -- очевидно, на последнем шаге делимое совпадает с остатком.


Zeqfreed   (2006-08-21 21:22:00) [5]

> [3] begin...end ©   (21.08.06 21:10)

Только не нолик, а цифра меньшая основания системы счисления (т.е. меньшая 8).


begin...end   (2006-08-21 21:22:00) [6]

> Тупак

Вообще, как, имея число, получить цифры его десятичного представления? Нужно последовательно делить его на 10 , т.е. на основание десятичной системы счисления, и смотреть на остатки. Например, число 1983:

1983 : 10 = 198 + 3
198 : 10 =  19 + 8
 19 : 10 =   1 + 9
  1 : 10 =   0 + 1


Как видите, остатки от деления -- это и есть цифры десятичного представления (только получаются они в "обратном порядке", от младшего разряда к старшему).

Точно так же будет и с восьмеричной системой, только теперь уже надо будет делить на 8 , т.е. на основание восьмеричной системы. Например, число 751:

751 : 8 = 93 + 7
93 : 8 = 11 + 5
11 : 8 =  1 + 3
 1 : 8 =  0 + 1


Значит, десятичное число 751 в восьмерчиной системе будет выглядеть как 1357.


tesseract   (2006-08-21 21:19:00) [7]

> [3] begin...end ©   (21.08.06 21:10)


насколько помню, это только для целых чисел.


Джо   (2006-08-21 21:15:00) [8]

> Остатки от деления на каждом шаге и будут цифрами восьмеричного
> представления.

В обратном порядке следования. Уточню на всякий случай.


GeLLeR   (2006-08-21 21:12:00) [9]

АГРОМНОЕ СПАСИБО


begin...end   (2006-08-21 21:10:00) [10]

Последовательно делить число на 8, пока от него не останется нолик. Остатки от деления на каждом шаге и будут цифрами восьмеричного представления.


Тупак   (2006-08-21 21:06:00) [11]

Мне надо именно восьмеричную. Тем более извените, на я поставил вопрос
КАК ЭТО СДЕЛАТЬ, А НЕ КАКАЯ ЛУЧШЕ...


Leonid Troyanovsky   (2006-08-21 21:02:00) [12]


> Тупак   (21.08.06 20:59)  

> Как перевести число из Edit1 из десятичной системы например
> в восьмеричную?


Восмиричная - отстой.
Пользуй шестнадцатиричную.

--
Regards, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо