为了账号安全,请及时绑定邮箱和手机立即绑定

.NET 内存中的浮点表示

.NET 内存中的浮点表示

C#
神不在的星期二 2022-01-16 14:30:17
根据Jon Skeet 的浮动文章,将符号位设置为 1,将其他所有内容设置为 0 仍然给出数字 0。我不能 100% 确定符号位是第一个位(如文章中所述)还是第一个位最后一点(如文档中所述)。无论如何,我都尝试了:byte[] buf = new byte[4];buf[0] = 0b10000000;buf[1] = 0b00000000;buf[2] = 0b00000000;buf[3] = 0b00000000;float f = BitConverter.ToSingle(buf, 0); // 1,793662E-43buf[0] = 0b00000000;buf[1] = 0b00000000;buf[2] = 0b00000000;buf[3] = 0b00000001;float g = BitConverter.ToSingle(buf, 0); // 2,350989E-38而且两者都不会导致0。我做错了什么?将所有位设置为 0 的完整性检查有效。
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

感谢用户 EOF,我意识到 .NET 字节没有存储在(对于非位黑客)直观的字节序中。buf[3] = 0b10000000;成功了。


查看完整回答
反对 回复 2022-01-16
  • 1 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信