![]() |
|
|
![]()
|
|
| SIMarOK |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 25.10.2004 Репутация: нет Всего: нет |
Помогите пожалуйста, кто знает, перевести число 27.00141 в дваичный код, желательно расписывать действия, а то калькулятор только ответ выводит
Спасибо Это сообщение отредактировал(а) SIMarOK - 15.9.2005, 18:02 |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 2 Всего: 134 |
Тебе нужно перевести число в двоичную систуму счисления, или узнать как его(число) хранит в памяти комп?
-------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| SIMarOK |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 25.10.2004 Репутация: нет Всего: нет |
И перевести, и как располагается, очень был бы признателен |
|||
|
||||
| esperant0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 714 Регистрация: 20.5.2005 Репутация: 4 Всего: 14 |
0.4 переведем в бинарный код.
для этого нужно умножать на два и смотреть на целую часть. 0.4*2=0.8 (целая часть ноль) 0.8*2=1.6 ( целеая часть 1 откинем ее) 0.6*2=1.2( целеая часть 1 откинем ее) 0.2*2=0.4 ( получили уже встречающееся число, значит запись переодическая) 0.4=0.011011011 В записи числа после точки, идут(сверху вниз) получавшиеся целые части. -------------------- Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором а затем стерто и которое он - пользователь не мог видеть. |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 2 Всего: 134 |
Относительно перевода.
В начале переводишь целую часть, потом складываешь. Пусть надо перевести 2570.00142 Алгоритм перевода целой части из 10ной в любую, берем ... (СЮРПРИЗ) 10-ную(так легче понять соль) Делишь на основание системы, то есть 10. 2570/10 = 257 остаток 0. 0 - цифра числа в требуемой системе 257/10 = 25 остаток 7. 7 - цифра числа в требуемой системе 25/10 = 2 остаток 5. 5 - цифра числа в требуемой системе 2/10 = 0 остаток 2. 2 - цифра числа в требуемой сс 0 - хватит делить, все цифры получены Как видно на каждом шаге мы делим на основание сс, "сдвигая" всё число на один разряд. Чтобы получить число, полученные цифры в остатках следует записать в обратном порядке(то есть 2,5,7,0 - получится 2570) 2570=2570. Тип топ. Если хочешь получить число в двоичной, то поступаешь так же, но вместо 10ки делишь на два. Алгоритм перевода дробной части из 10ной в любую, берем ... (БАЯН) 10-ную. Итак, узнаеи цифры в числе .00142. Если раньше последовательно делили, то теперь последовательно умножаем на основание СС, выдвигая таким образом нужную нам цифру. .00141 * 10 = 0.0142 0 - цифра числа в требуемой системе .0141 * 10 = 0.142. 0 - цифира числа в требуемой системе .141 * 10 = 1.42. 1 - цифра числа в требуемой системе .41 * 10 = 4.2. 4 - цифра числа в требуемой системе .2*10 = 2.0, 2 - цифра числа. Как видно в данном случае найденный цифры числа идут сверху вниз. .00142 = .00142. Верно. Переведем по подобному алгоритму 33.25. 33 / 2 = 16 остаток 1 16 / 2 = 8 остаток 0 8 / 2 = 4 остаток 0 4 / 2 = 2 остаток 0 2 / 2 = 1 остаток 0 1 / 2 = 0 остаток 1 сл-но 33 - это 100001 в двоичной(что есть правда) или то же самое в двоичной системе 100001 / 10 = 10000 остаток 1 10000 / 10 = 1000 остаток 0 1000 / 10 = 100 остаток 0 100 / 10 = 10 остаток 0 10 / 10 = 1 остаток 0 1 / 10 = 0 остаток 1 То есть благодаря делению в остаток заносится 1 цифра исходного числа. Переводим 0.25 0.25 * 2 = 0.5 0.5 * 2 = 1.0 Таким образом в двоичной сс 0.25 выглядит как 0.01. Переведём двоичное 0.01 в двоичное: 0.01 * 10 = 0.1 0.1 * 10 = 1.0 Как видно при умножении на 2 в целые числа попадает цифра исходного числа. Переводы из Nной СС(системы счисления) в Nную СС хорошо покаывают как данный алгоритм получает цифры исходного числа). Кстати не все дробные числа нормально переводятся между сс. Так например при переводе одной десятой в двоичную получится бесконечная дробь (как и при переводе из 0.1 в троичной в десятичную (3 в степени -1 - это бесконечная дробь)) ----------------------------------------- Про хранения флоатов в памяти советую почитать например тут. Если в кратце, то в памяти хранятся все двоичные цифры числа, кроме первой(которая равна единице), позиция запятой и знак. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |