C#取M1卡物理卡号转成10进制

1、先将取出来的16进制卡号颠倒如F3 0C 4F 06转成06 4F 0C F3 (注意物理卡号是第0扇区的前4个字节)

2、将转换后的16进制卡号转成10进制,不足10位左补0

代码实现:

//调用:
GetM1CardNo("F30C4F06");

 

 1  private string GetM1CardNo(string cardNo16Code)
 2         {
 3             string cardNo = "";
 4             //十六进制反转
 5             int i = 0;
 6             string s = "";
 7             string[] arr = new string[cardNo16Code.Length / 2];
 8             foreach (var item in cardNo16Code)
 9             {
10                 s = s + item;
11                 i = i + 1;
12                 if (i % 2 == 0)
13                 {
14                     arr[i/2 -1] = s;
15                     s = "";
16                 }
17             }
18             Array.Reverse(arr);
19 
20             //转10进制,不足10左补0,注意是int64,否则会出数结果为负数
21             cardNo = Convert.ToInt64(string.Join("", arr), 16).ToString().PadLeft(10, '0');  22 
23             return cardNo;
24         }

 

posted @ 2022-11-02 10:33  ziff123  阅读(261)  评论(0编辑  收藏  举报