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 @   ziff123  阅读(279)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示