下午好,
这可能听起来像一个愚蠢的问题,但如果有这样一个方法,这将是非常有用的…有什么办法可以在C#中获得定制的位深度整数(例如,20位整数)?
非常感谢你.
解决方法
好问题.大多数情况下,答案将取决于您需要做什么.
我在几年前做过类似的事情,保持了学校的研究项目.我们有一个自定义的整数类型,尽管它不一定由位深度本身定义.这是一个素材因素(有余数).这对于它应该做什么来说非常方便,这是多重和分割非常大的数字.加法和减法非常差.
还有许多其他“定制”数字实现,一个非常常见的一个是自定义固定点表示(通常在游戏中实现确定性物理模拟时看到).关于这个问题可能有一些很好的溢出帖子.这些将是一个很好的开始,了解如何抽象,然后实现自定义数字表示.
如果您设置为可变位深度整数表示,请考虑包装内部表示.一种可能性是使用IEnumerable< byte>并随着其幅度的增加逐字节地扩展.编写适合动态范围的运算符.这可能不一定是最合适的表现形式或最具表现力的形式,但它可能是最简单的.
另一个可能的解决方案可能是做类似的事情,但是用“ulong”.不如空间有效,但是我们受益于64位操作.
只是spitballing