Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Двоичная система исчисления 
:(
    Опции темы
Akella
  Дата 20.12.2004, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Подскажите, как представить число в двоичной системе исчисления и обратно

не смейтесь smile
PM MAIL   Вверх
Bes
Дата 20.12.2004, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



Обратно куда?.... в десятичную. :-) Ща че-нить попробую наваять.

Так, вообщем чтобы из двоичной в десятичную перевести существует алгоритм. (кстати поищи в этом разделе - может там чего есть.)

например двоичное число

100101

нумеруем его с хвоста начиная с нуля т.е.

5 4 3 2 1 0
|_|_|_|_|_|
1 0 0 1 0 1

теперь каждую двоичную цифру умножаем на 2 возводим в степень = нумерации и складываем т.е.

(2*1)^5+(2*0)^4+(2*0)^3+(2*1)^2+(2*0)^1+(2*1)^0=
32+0+0+4+0+1=37
проверяем калькулятором =37 ч.т.д.
на счет обратно не помню, но подумаю.

Это сообщение отредактировал(а) Bes - 20.12.2004, 15:45
PM MAIL   Вверх
кварк
Дата 20.12.2004, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 2.8.2002

Репутация: нет
Всего: нет



Цитирую раздел FAQ DRKB (от себя советую его скачать ~15Mb):

Код

Для преобразования числа в двоичную запись удобно использовать функции shl и and.
Эта функция преобразует число в строку из единиц и нулей. Количество цифр определяется параметром Digits.


function IntToBin(Value: integer; Digits: integer): string;
var
 i: integer;
begin
 result := '';
 for i := 0 to Digits - 1 do begin
   if Value and (1 shl i) > 0
     then result := '1' + result
     else result := '0' + result;
 end;
end;
Вот пример использования этой функции:


procedure TForm1.Edit1Change(Sender: TObject);
begin
 Form1.Caption := IntToBin(StrToIntDef(Edit1.Text, 0), 128);
end;

Взято с сайта http://blackman.wp-club.net/

PM MAIL   Вверх
Bes
Дата 20.12.2004, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



Ага, обратно так:
десятичное число делим все время на 2 до нуля и остаток записываем справа налево.
т.е.
37 делим на 2 = 18 и 1 ост =1
18 / 2 = 9 и 0 ост =01
9 / 2 = 4 и 0 ост =101
4 / 2 = 2 и 0 ост =0101
2/2 = 1 и 0 ост =00101
1/2 = 0 и 1 ост =100101

все 0
PM MAIL   Вверх
Akella
Дата 22.12.2004, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата
Цитирую раздел FAQ DRKB (от себя советую его скачать ~15Mb):

Скачано сразу после появления, не волнуйся, а есть ли BinToInt
Спасибо за ответ, но меня еще волновал вопрос о том, как ручками (алгоритм), Bes помог.

и как перевести, например 16989,8956
PM MAIL   Вверх
_hunter
Дата 22.12.2004, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



тут немного интереснее.
береш 0.8956 и умножаеш его на два:
1,79812
потом умножаеш на два результат ( после запятой ):
1,59624
и так до... ( пока не будет получен ноль или достигнута необходимая точность )

обратный перевод -- умножаеш 1 на 2 в степени -к ( при 0.8956 -- нулевая степень )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Akella
Дата 22.12.2004, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



_hunter, объясни, пожалуйста подробнее, если можно, конечно
заранее благодарю
Добавлено @ 13:03
вот, что я нашел
http://forum.vingrad.ru/index.php?showtopi...темы+исчисления
PM MAIL   Вверх
_hunter
Дата 22.12.2004, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



а что именно объяснить ( кажись и так все понятно... )
может в аську стукни


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Akella
Дата 22.12.2004, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



объясните мне это
Например, число 0.625.
В двоичной системе 0.625=1*2^(-1)+0*2^(-2)+1*2^(-3)=101b * 2^(-1).
Первый бит отбрасываем, получаем 01b.
Экспонента будет равна -1+127=126.

PM MAIL   Вверх
_hunter
Дата 22.12.2004, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



этого я тоже не понимаю smile
( есть подозрение что это пример перевода из двоичной в десятичную наоборот )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Bes
Дата 27.12.2004, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



По моему чисел сточкой в двоичном представлении не бывает, а такие вещи как рил и экстендед хитрый механизм где для хранения дробной части отведены лишние байты.
PM MAIL   Вверх
Akella
Дата 27.12.2004, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата
По моему чисел сточкой в двоичном представлении не бывает,


бывает
PM MAIL   Вверх
dm9
Дата 27.12.2004, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 6
Всего: 137



PM MAIL ICQ   Вверх
_hunter
Дата 27.12.2004, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



бывают smile. причем я описывал алгоритм перевода.


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Bes
Дата 28.12.2004, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



2hunter: ну и я не увидел результата перевода в двоичном виде.
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1324 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.