有关在.Net中移动浮点数据类型的细节?

Cor*_*urn 1 .net bit-shift

如果我没记错,可以将double或float分为3个部分:符号位,指数和尾数.

当双移位时,这些位是否会移动变量的整个二进制,还是仅仅移动尾数?

Jon*_*eet 5

编辑:Doh - 忽略以前版本的答案.

你不能移动浮点类型 - 至少在C#中.

另一方面,如果你是多次或重复除以2,你会看到我之前提到的:在标准化数字范围内,向左移动会使指数增加1而向右移动会使指数减1.在非正规数字内,指数固定为0,因此尾数必须改变.

编辑:要回答您的注释,如果指数为零且尾数不为零,则值表示次正规/非正规数.有关IEEE 754的更多信息,请参阅此页面,我有一个关于.NET二进制浮点的页面.