gpt4 book ai didi

c# - 遗留应用程序中的数字到二进制转换

转载 作者:太空宇宙 更新时间:2023-11-03 12:24:06 25 4
gpt4 key购买 nike

门禁卡遗留应用程序的功能之一是将数字转换为二进制并将其存储在 MS SQL DB 字段类型 binary(9) 中。该字段包含韦根26位格式的卡号,最大可存储65535。

我们没有遗留应用程序源代码

当我们使用 select cast(number as binary(9)) 将数字转换为二进制时,当应用程序将其转换时,结果会有所不同。

示例:38741

旧版应用:

0x000000000055970000

select cast(38741 as binary(9)):

0x000000000000009755

我可以在输出差异中看到某种模式。这里有一些更多的例子:

<table>
<tr>
<th>Number</th>
<th>LegacyAppOutput</th>
<th>SqlCastValue</th>
</tr>
<tr>
<td>38741</td>
<td>0x000000000055970000</td>
<td>0x000000000000009755</td>
</tr>
<tr>
<td>27250</td>
<td>0x0000000000726A0000</td>
<td>0x000000000000006A72</td>
</tr>
<tr>
<td>27249</td>
<td>0x0000000000716A0000</td>
<td>0x000000000000006A71</td>
</tr>
<tr>
<td>27248</td>
<td>0x0000000000706A0000</td>
<td>0x000000000000006A70</td>
</tr>

</table>

有没有像遗留应用程序那样执行数字到二进制的函数(在 C# 的 SQL 中)?

最佳答案

您只需要更改数字的字节序。以下是如何操作的示例: http://www.csharp-examples.net/reverse-bytes/ .不幸的是,没有办法做到这一点。

关于c# - 遗留应用程序中的数字到二进制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45912245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com