Особенности смещения типов данных с плавающей точкой в ​​.Net? - PullRequest
1 голос
/ 16 августа 2010

Если я правильно помню, двойное число или число с плавающей запятой разбито на 3 части: бит знака, показатель степени и мантисса.

Когда сдвигается двойное число, сдвигают ли биты весь двоичный файл переменной или это просто сдвигает мантиссу?

Ответы [ 2 ]

5 голосов
/ 16 августа 2010

РЕДАКТИРОВАТЬ: Doh - игнорировать предыдущую версию ответа.

Вы не можете сдвигать типы с плавающей запятой - по крайней мере, в C #.

С другой стороны, если вы были кратны илиделив на два несколько раз, вы увидите то, что я упоминал ранее: в пределах нормализованных чисел сдвиг влево увеличит показатель степени на единицу, а сдвиг вправо уменьшит показатель на единицу.В пределах ненормальных чисел показатель степени установлен в 0, поэтому мантисса должна измениться.

РЕДАКТИРОВАТЬ: Чтобы ответить на ваш комментарий, значение представляет субнормальное / ненормальное число, если показатель степени равен нулю, а мантисса не являетсянуль.См. эту страницу для получения дополнительной информации о IEEE 754 в целом, и у меня есть страница о .NET двоичной с плавающей точкой .

1 голос
/ 16 августа 2010

Насколько я знаю, операторы сдвига определены только для целых чисел в .Net.

...