我有一个系统可以在 Mifare 卡上存储十进制值
使用此代码将 C# 十进制值转换为 16 字节的字节数组
MemoryStream memStream = new MemoryStream();
BinaryWriter writer = new BinaryWriter(memStream);
try
{
try
{
writer.Write(m_Value);
tmp = memStream.ToArray();
}
finally
{
memStream.Close();
}
}
finally
{
writer.Close();
}
Run Code Online (Sandbox Code Playgroud)
这给出了一个 16 字节的表示。
现在我们有一个客户需要读取这 16 个字节并将其转换回十进制数,但是在 C
这是怎么做的?
任何人都可以找到 C# 字节表示的定义/规范,我不能
你并不需要使用MemoryStream,BinaryWriter等等,在这里; 仅仅decimal.GetBits(value)是罚款。内容完整记录,在这里:https : //msdn.microsoft.com/en-us/library/system.decimal.getbits(v=vs.110).aspx。有一个接受相同格式的构造函数。
请注意,这会给您一个int[],而不是一个byte[],但是...介于int和之间byte是微不足道的;可能最简单的方法是使用 shift 和 mask。
该BinaryWriter版本没有正式记录,但可能只是GetBits()按顺序写入的整数。