0

我正在对一个项目进行编程,我应该将用户的密钥存储到机器的初始配置中,我想用 C# 编写它。

我有一个初始配置,它由两个数字 R 和 X0 组成,R = 3.9988 和 X0 = 0.5。我想将用户密钥添加到这些数字。例如:

键:hos110 =>

  • R = 3.9988104111115049049048
  • X0 = 0.5104111115049049048

104111115049049048 是连接的密钥的 ASCII 码。

我怎样才能存储这些数字?

有没有更好的方法来做到这一点?

更新:MATLAB 怎么样?

4

7 回答 7

5

你并不是真的“添加”数字。您正在连接字符串。

将它们存储为字符串。你不能得到比这更精确的了。

如果您需要执行任何算术运算,可以很容易地将它们即时转换为十进制数。

于 2009-11-03T17:30:06.143 回答
4

我并不真正理解为什么您将密钥用作数字的一部分,但是将其放在一边…… System.Decimal(又名decimal)似乎是适合此处工作的正确工具。

于 2009-11-03T17:28:05.690 回答
2

如果你需要无限精度,你需要一个叫做 BigInteger 的东西。然而,这些类通常仅用于科学计算(通常不适合存储数据),这似乎与您的代码示例并不匹配。如果您只需要进行一般计算,请使用字符串,然后将它们转换为小数进行计算。

However if you are looking for such a BigInterger Class you can find one here.

.Net 4.0 will have a BigInteger built-in-class in the class libraries named System.Numerics.BigInteger.

于 2009-11-03T17:54:40.307 回答
1

好吧,根据您要达到的精度,您可以将它们保存为一对十进制值。

但是,如果这是一个 ASCII 代码,您可能只想将它们直接保存为字符串。这将避免数值精度问题,特别是如果您要在使用此信息之前关闭 104111...。

于 2009-11-03T17:29:05.787 回答
0

看来您正在存储“密钥”,那么为什么不使用字符串呢?

于 2009-11-03T17:28:17.607 回答
0

浮点数本质上是不精确的。我不确定这个“初始配置”是什么或为什么它是浮动的,但是您将无法添加“用户密钥”(无论可能是什么)并在以后恢复它。将用户密钥单独存储在字符串或其他内容中。

于 2009-11-03T17:29:18.323 回答
0

如果这些“数字”没有数值,即您不会将它们用于数学计算,则无需将它们存储在数字数据类型中。您可以将它们存储为字符串。

于 2009-11-03T17:29:18.340 回答