首页 > 编程语言 >C#取M1卡物理卡号转成10进制

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

时间:2022-11-02 10:47:10浏览次数:50  
标签:case 10 string 16 C# break M1 strNum

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
21             cardNo = GetHexadecimalValue(string.Join("", arr)).ToString().PadLeft(10, '0');
22 
23             return cardNo;
24         }
 1  /// <summary>
 2         /// 十六进制换算为十进制
 3         /// </summary>
 4         /// <param name="strColorValue"></param>
 5         /// <returns></returns>
 6         public static int GetHexadecimalValue(String strColorValue)
 7         {
 8             char[] nums = strColorValue.ToCharArray();
 9             int total = 0;
10             try
11             {
12                 for (int i = 0; i < nums.Length; i++)
13                 {
14                     String strNum = nums[i].ToString().ToUpper();
15                     switch (strNum)
16                     {
17                         case "A":
18                             strNum = "10";
19                             break;
20                         case "B":
21                             strNum = "11";
22                             break;
23                         case "C":
24                             strNum = "12";
25                             break;
26                         case "D":
27                             strNum = "13";
28                             break;
29                         case "E":
30                             strNum = "14";
31                             break;
32                         case "F":
33                             strNum = "15";
34                             break;
35                         default:
36                             break;
37                     }
38                     double power = Math.Pow(16, Convert.ToDouble(nums.Length - i - 1));
39                     total += Convert.ToInt32(strNum) * Convert.ToInt32(power);
40                 }
41 
42             }
43             catch (System.Exception ex)
44             {
45                 String strErorr = ex.ToString();
46                 return 0;
47             }
48 
49 
50             return total;
51         }

 

标签:case,10,string,16,C#,break,M1,strNum
From: https://www.cnblogs.com/handsomeziff/p/16850243.html

相关文章

  • python 读取excel
    练习#coding:utf-8"""#@Time:2022/10/2517:47#@Author:GinaGao#@File:#@Software:PyCharm#@Descript:pipinstall-ihttps://pypi.tuna.tsinghua......
  • k3cloud凭证录入维度自动带出
    开发要点:使用到【维度数据录入】的表单插件,获取费用项目的值,然后查询对应的部门,表单进行赋值,代码略。 ......
  • Oracle中查询表结构的六种方法
    首发微信公众号:SQL数据库运维原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1&sn=450e9e94fa709b5eeff0de371c62072b&chksm=ea37536cdd......
  • This class is not trusted to be serialized as ObjectMessage payload.ActiveMQ序列
    引子ObjectMessage引入的生产者和消费者之间的类路径耦合,ActiveMQ支持他们作为JMS规范的一部分。ObjectMessage对象依赖marshal/unmarshal进行java序列化,这个过程是......
  • C# 语法分析器(五)错误恢复
    系列导航(一)语法分析介绍(二)LR(0)语法分析(三)LALR语法分析(四)二义性文法(五)错误恢复(六)构造语法分析器语法分析中的错误恢复是一个很复杂的问题,有多种可能的错误恢复......
  • C# 语法分析器(四)二义性文法
    系列导航(一)语法分析介绍(二)LR(0)语法分析(三)LALR语法分析(四)二义性文法(五)错误恢复(六)构造语法分析器二义性文法,指的是一个可以为某个句子生成多颗语法分析树。最常......
  • C# 语法分析器(三)LALR 语法分析
    系列导航(一)语法分析介绍(二)LR(0)语法分析(三)LALR语法分析(四)二义性文法(五)错误恢复(六)构造语法分析器上一章构造了LR(0)自动机,现在就可以来构造LALR语法分析表了......
  • C# 语法分析器(二)LR(0) 语法分析
    系列导航(一)语法分析介绍(二)LR(0)语法分析(三)LALR语法分析(四)二义性文法(五)错误恢复(六)构造语法分析器首先,需要介绍下LALR语法分析的基础:LR(0)语法分析。还是以之......
  • C# 语法分析器(一)语法分析介绍
    系列导航(一)语法分析介绍(二)LR(0)语法分析(三)LALR语法分析(四)二义性文法(五)错误恢复(六)构造语法分析器之前的《C#词法分析器》系列,已经可以构造出一个词法分析器,可以......
  • 畅捷通0day勒索攻击事件 几个IOC都只是漏洞的 勒索病毒本身没有看到ioc
    畅捷通0day勒索攻击事件关联归因及产品解决方案时间:  2022年08月30日  1.概述近期,畅捷通T+软件的0day漏洞,被“魔笛”黑客组织利用进行勒索攻击活动,引起较大社会......