![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Подскажите, как представить число в двоичной системе исчисления и обратно
не смейтесь ![]() |
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
кварк |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 2.8.2002 Репутация: нет Всего: нет |
Цитирую раздел FAQ DRKB (от себя советую его скачать ~15Mb):
|
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Скачано сразу после появления, не волнуйся, а есть ли BinToInt Спасибо за ответ, но меня еще волновал вопрос о том, как ручками (алгоритм), Bes помог. и как перевести, например 16989,8956 |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 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... |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
_hunter, объясни, пожалуйста подробнее, если можно, конечно
заранее благодарю Добавлено @ 13:03 вот, что я нашел http://forum.vingrad.ru/index.php?showtopi...темы+исчисления |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
а что именно объяснить ( кажись и так все понятно... )
может в аську стукни -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 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. |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
этого я тоже не понимаю
![]() ( есть подозрение что это пример перевода из двоичной в десятичную наоборот ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
По моему чисел сточкой в двоичном представлении не бывает, а такие вещи как рил и экстендед хитрый механизм где для хранения дробной части отведены лишние байты.
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
бывает |
|||
|
||||
dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
||||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
бывают
![]() -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2hunter: ну и я не увидел результата перевода в двоичном виде.
|
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
в смысле? ( а что ты ожидал увидеть? ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
Bes, посмотри мою ссылку. Там всё подробно расписано про дробные числа.
|
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2dm9:
Ага, почитал. Ну вообщем понятно. т.е. с чисто мат-ой точки зрения просто ставим запятую - логично. |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
запятая ставится не просто а хитро
![]() -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
что значит хитро?
|
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
запятая поставленная просто -- это берем число после запятой за простой int и переводим его в bin
а поставленная хитро -- это перевод по 2 в отрицательной степени -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
короче переведи число 126,7 в двоичную систему счисления
|
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
126, думаю, и сам переведеш, а 0,7:
010110011001 -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
я не просил результат, честно говоря, приведи пример, как говориться, на пальцах розложи, пожалуйста, очень прошу. как будет полностью выглядеть запись? Она что, из двух частей будет состоять? Это сообщение отредактировал(а) dsergey - 30.12.2004, 12:51 |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
почему из двух? число приводится к виду 0,ххх т.е. 0,1267 -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Pathfider |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.7.2004 Где: все там же Репутация: -1 Всего: 1 |
Для перевода необходимо делить число на основание новой системы счисления, до тех пор, пока очередное частное от деления не станет меньше основания новой системы счисления. Тогда остатки от деления, записанные цифрами новой системы счисления в порядке , начиная с последнего , будут являться цифрами числа в новой СС.
Например: 173(10) в ?(2)
Затем собираем все цифры, начиная с последней: 10101101 - 173(2) Наоборот, в двоичную: 1 0 1 0 1 1 0 1 - 173 7 6 5 4 3 2 1 0 - 1*2^7 + 0*2^6 + 1*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 173 Все очень просто. --------------------
Trust is a weakness |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
это для int' a. для float -- по-другому переводится
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2_hunter: Балин, хантер, ты так от начала до конца и не показал ни одного примера давай 3.14 переведи полностью бес цитат, тем более, что с точки зрения программиста ис твоей цитаты следует, что если 0.8956 умножать на 2 то когда-нибудь получишь или 0 или "точность" большую исходного числа - хрень какая-то :-( по-подробнее пожалуйста - не понятно.
Видимо ты не раз это делал, но редко объяснял. :-) Это сообщение отредактировал(а) Bes - 31.12.2004, 07:53 |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
до конца -- это докуда?
и при чем тут умножение 0.8956? Алгоритм ведь не для одного числа писался ;) Попробуй, например, 0.5 на два поумножать ![]() откуда вывод про "точность" большую исходного числа я так и не понял ![]() объяснял, действительно, редко ![]() ну а теперь сам перевод ![]() приводим 3.14 к виду 0.314 0,314*2 = ,628 ( 2^-1 ) ,628*2 = 1,256 ( 2^-2 ) ,256*2= 0,512 ( 2^-3 ) ,512*2 = 1,024 ( 2^-4 ) ,024*2 = ,048 ( 2^-5 ) ,048*2 = ,096 ( 2^-6 ) ,096*2 = ,192 ( 2^-7 ) ,192*2 = ,384 ( 2^-8 ) ,384*2 = ,768 ( 2^-9 ) ,768*2 = 1,536 ( 2^-10 ) и так до "пока не надоест" -- мне надоело ![]() для обратного перевода считаем 2^-2 + 2^-4 + 2^-10 и получаем 0.313 епсилон = 0,001 -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Pathfider |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.7.2004 Где: все там же Репутация: -1 Всего: 1 |
dsergey Вот тебе все и объяснили, помоему достаточно доходчиво. Есть еще чего непонятного?
--------------------
Trust is a weakness |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
смешно
![]() даже очень -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Guest |
|
|||
Unregistered |
решите кто-нибудь вот это ( тока сёдня надо!!!!!!):
D42(16) - 52(8) + 11011(2) В скобках система исчисления..... ![]() |
|||
|
||||
SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 2 Всего: 74 |
Посчитай сам... -------------------- Всем добра ![]() |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
Или воспользуйся калькулятором в windows...
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
MacTep |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
SoWa, а как сделать, чтобы эта функция еще и дробные числа переводила?
Это сообщение отредактировал(а) MacTep - 18.6.2006, 19:13 -------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |