【发布时间】:2015-03-11 20:55:31
【问题描述】:
我有一个独特的情况,我必须在已经建立的平台上编写代码,所以我试图找出一个技巧来使某些东西工作。
我的问题是我有一个用户定义的字符串。基本上命名一个信号。我需要把它放到另一个程序中,但唯一可用的方法是在一个 double 值内。以下是我尝试过但无法使其正常工作的方法。我尝试将字符串转换为字节数组,然后通过循环字节创建一个新字符串。然后我将此字符串转换为 Double。然后使用BitCoverter将其取回字节数组,然后尝试获取字符串。
不确定这是否可以实现。有什么想法吗?
string signal = "R3MEXA";
string newId = "1";
byte[] asciiBytes = System.Text.Encoding.ASCII.GetBytes(signal);
foreach (byte b in asciiBytes)
newId += b.ToString();
double signalInt = Double.Parse(newId);
byte[] bytes = BitConverter.GetBytes(signalInt);
string result = System.Text.Encoding.ASCII.GetString(bytes);
【问题讨论】:
-
为什么不使用字符串转字节数组,然后在Byte[] Convert.ToDouble(byte)中foreach字节
-
信号字符串的“范围”是多少,例如最长字符串,最短字符串,什么字符等?
-
你试过在你的 asciiBytes 数组上使用
BitConverter.ToDouble方法吗?如果将数组填充为 8 字节长度,则不需要newId、foreach循环和Double.Parse(newId)。