Другие языки программирования и технологии

Как это делается?? Дан код величины типа Double. Преобразовать его в число.

Задания а) 407C060000000000; б) C0610C0000000000
407C060000000000₁₆ = 0100000001111100000001100000000000000000000000000000000000000000₂
у double знак 1 бит, экспонента (степень) 11 бит, мантисса 52 бита.
0 10000000111 1100000001100000000000000000000000000000000000000000
старший бит мантиссы в нормализованных числах всегда равен единице, поэтому в число он не записывается в целях экономии.
так что берем значащую часть мантиссы (без последних нулей) 11000000011, добавляем в начале отсутствующую единицу 111000000011, и переводим в десятичную систему, получаем 3587

переводим экспоненту в десятичную систему 10000000111₂ = 1031₁₀, вычитаем из нее 1023 и то количество бит, которое мы взяли от мантиссы, т. е. 11. получаем 1031 - 1023 - 11 = -3
ответ 3587 * 2⁻³ = 3587 / 2³ = 3587 / 8 = 448.375

1023 это серединное (нулевое) значение экспоненты для типа double, для float/single это будет 127

во втором числе старший бит выставлен в единицу, значит оно отрицательное.
в остальном переводится точно так же как и первое. никакого дополнительного кода считать не нужно.
попробуйте перевести второе число самостоятельно.
РГ
Руслан Гончаров
7 029
Лучший ответ
Руслан Гончаров тут автоматический перевод http://ideone.com/PhxzYN
можете форкнуть и вставлять свои значения. или у себя выполнить если есть перл.
рекомендую сначала решить самостоятельно. на экзамене-то пригодится скорее всего :)
Берешь и засовываешь это число по адресу указателя на Double, затем печатаешь на экране свой Double.
Если вручную - надо знать внутреннее представление типа, оно не слишком сложное, но на память его никто в здравом уме не помнит. А учебник почитать ты и сам можешь.
Кристина Судакова а можно по подробнее первый вариант?
Александр, хотя бы гугелем научитесь пользоваться. Тут Ваша методичка: http://bivran.ru/uchebno-metodicheskij-kompleks-disciplini-v5/stranica-28.html
Там разъясняется алгоритм перевода, на примере типа double. Начинается от слов: "Покажем преобразование действительного числа для представления его в памяти ЭВМ на примере величины типа Double". Хоть в броузере умеете пользоваться поиском?
Jn
Jn
48 987

Похожие вопросы