divyang4481 / mipt-hw

Automatically exported from code.google.com/p/mipt-hw
0 stars 0 forks source link

task18 Представление типа double Анастасьев #142

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
anastasyev_daniil/task18_PrintMem

Original issue reported on code.google.com by dan.anas...@gmail.com on 19 Nov 2012 at 5:31

GoogleCodeExporter commented 9 years ago
0 -     0 00000000000 0000000000000000000000000000000000000000000000000000
1 -     0 01111111111 0000000000000000000000000000000000000000000000000000
2 —     0 10000000000 0000000000000000000000000000000000000000000000000000
-1 -    1 01111111111 0000000000000000000000000000000000000000000000000000
0.6 -   0 01111111110 0011001100110011001100110011001100110011001100110011
4000 -  0 10000001010 1111010000000000000000000000000000000000000000000000
-1024 - 1 10000001001 0000000000000000000000000000000000000000000000000000

Представление double:
 - Первый разряд: знак (0 для +, 1 для -)
 - 11 следующих битов - экспонента. Для ее вычисления из нее вычитается 10-ти битное смещение: 2^10-1=1023. Соответственно, нулевой степенью считается 01111111111, максимальной - 11111111111 (2047-1023=1024), а минимальной - 00000000000 (-1023)
 - 52 последних - мантисса, ее значение будет использовано как дробная часть числа, добавляющаяся к 1.0, имеющейся по умолчанию. 
В итоге, число равно произведению мантиссы 
со знаком на два в степени экспоненты.

Original comment by dan.anas...@gmail.com on 19 Dec 2012 at 1:12

GoogleCodeExporter commented 9 years ago
Решение принято.

Original comment by aivyu...@gmail.com on 22 Dec 2012 at 11:22