加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 变量的内存地址

发布时间:2020-12-15 23:55:06 所属栏目:百科 来源:网络整理
导读:是否可以在C#中获取变量的内存地址. 我想要做的很简单.我想声明Double类型的变量, Float,Decimal并为每个变量赋值1.1.然后我想 去看看这些值是如何在内存中表示的.我需要记忆 变量的地址,以便查看它如何存储在内存中.一旦我有了 内存地址我打算在代码中加一
是否可以在C#中获取变量的内存地址.

我想要做的很简单.我想声明Double类型的变量,
Float,Decimal并为每个变量赋值1.1.然后我想
去看看这些值是如何在内存中表示的.我需要记忆
变量的地址,以便查看它如何存储在内存中.一旦我有了
内存地址我打算在代码中加一个断点并使用Debug – > Windows – >记忆
visual studio中的选项,以查看数字如何存储在内存中.

干杯,

解决方法

是的,可以在C#中获取存储的原始指针.我建议您阅读C#规范的第18章,其中详细讨论了该主题,而不是试图在此解释所有内容.

但是,如果您要做的是了解各种不同的浮点类型如何存储值,则比在调试器中查看它们更容易.这些都是记录良好的格式;您可以在维基百科或msdn中查找它们,并阅读它们如何在内存中布局.

Decimal值的二进制表示由1位符号,96位整数和用于划分96位整数的比例因子组成,并指定它的小数部分.缩放因子隐含地为数字10,增加到范围从0到28的指数.

有关详情,请参见http://msdn.microsoft.com/en-us/library/system.decimal.aspx.

double的二进制表示是一个符号位,11个指数位表示从-1022到1023的指数,52位尾数,它们被解释为“1”.接着是52位.

有关浮点问题,请参阅http://en.wikipedia.org/wiki/Double_precision或我的系列文章:http://blogs.msdn.com/ericlippert/archive/tags/Floating+Point+Arithmetic/default.aspx

浮点数与double相同,只有一半大小:一个符号位,8个指数位,23个尾数位.有关详细信息,请参见http://en.wikipedia.org/wiki/Single_precision_floating-point_format.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读