Другие языки программирования и технологии
Как это делается?? Дан код величины типа 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
во втором числе старший бит выставлен в единицу, значит оно отрицательное.
в остальном переводится точно так же как и первое. никакого дополнительного кода считать не нужно.
попробуйте перевести второе число самостоятельно.
у 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
во втором числе старший бит выставлен в единицу, значит оно отрицательное.
в остальном переводится точно так же как и первое. никакого дополнительного кода считать не нужно.
попробуйте перевести второе число самостоятельно.
Берешь и засовываешь это число по адресу указателя на Double, затем печатаешь на экране свой Double.
Если вручную - надо знать внутреннее представление типа, оно не слишком сложное, но на память его никто в здравом уме не помнит. А учебник почитать ты и сам можешь.
Если вручную - надо знать внутреннее представление типа, оно не слишком сложное, но на память его никто в здравом уме не помнит. А учебник почитать ты и сам можешь.
Кристина Судакова
а можно по подробнее первый вариант?
Александр, хотя бы гугелем научитесь пользоваться. Тут Ваша методичка: http://bivran.ru/uchebno-metodicheskij-kompleks-disciplini-v5/stranica-28.html
Там разъясняется алгоритм перевода, на примере типа double. Начинается от слов: "Покажем преобразование действительного числа для представления его в памяти ЭВМ на примере величины типа Double". Хоть в броузере умеете пользоваться поиском?
Там разъясняется алгоритм перевода, на примере типа double. Начинается от слов: "Покажем преобразование действительного числа для представления его в памяти ЭВМ на примере величины типа Double". Хоть в броузере умеете пользоваться поиском?
Похожие вопросы
- Delphi!? Дана строка 05:12, как преобразовать ее в тип Время???
- Как при восьмеричном коде компьютер понимает сколько знаков (цифр) в числе?
- Помогите с кодом, нужно понять являются ли 3 введенных числа Арифметической прогрессией, мой код выдает ошибку
- Помогите, нужен код на ассемблере. Вывод меньшего из введенных чисел
- помогите решить задачи на паскале 1Во входном файле дана последовательность чисел. Требуется найти второе по величине чи
- Программа, которая находит разность двух чисел (IEEE 754 стандарт double) ассемблер.
- c++ рандомное Double число
- Как представленное ниже значение в двоичном дополнительном коде преобразовать в десятичный формат? число 11010
- помогите решить задачу Во входном файле дана последовательность чисел , число (количество чисел в после
- Можно ли преобразовать строку с кодом на языке N в непосредственно код на языке N?
можете форкнуть и вставлять свои значения. или у себя выполнить если есть перл.
рекомендую сначала решить самостоятельно. на экзамене-то пригодится скорее всего :)