如何将12位手机号转换为6字节数组BCD码?

mac2022-06-30  70

将一个12位的手机号(11位手机号前补0,如013482339442),转换12个为8421码,然后组合成6字节数组,暂命名为BCD6,转换方法如下:

using  System; using  System.Collections.Generic; using  System.Linq; using  System.Text; namespace  ConsoleDemo{     public   class  BCD6    {         public   string  GetMobileNo( byte [] mobileArray)        {            StringBuilder sb  =   new  StringBuilder();             for  ( int  i  =   0 ; i  <   6 ; i ++ )            {                  byte  bb = mobileArray[i];                sb.Append((( byte )(bb  >>   4 )).ToString());                sb.Append((( byte )(( byte )(bb  <<   4 >>   4 )).ToString());            }             return  sb.ToString();        }         public   byte [] ConvertToBCD6( string  mobileNo)        {              byte [] mobileArray = new   byte [ 6 ];             if  (mobileNo.Length  !=   12 return  mobileArray;             for  ( int  i  =   0 ; i  <   6 ; i ++ )            {                mobileArray[i]  =  Convert.ToByte(mobileNo.Substring(i * 2 2 ),  16 );            }             return  mobileArray;        }    }}

 控制台测试代码:

 

using  System; using  System.Collections.Generic; using  System.Linq; using  System.Text; namespace  ConsoleDemo{     class  Program    {         static   void  Main( string [] args)        {             byte [] mobileArray  =   new   byte [ 6 ] {  0x01 0x34 0x82 0x33 0x94 0x42  };            BCD6 bcd6  =   new  BCD6();            Console.WriteLine(bcd6.GetMobileNo(mobileArray));             byte [] mobile2  =  bcd6.ConvertToBCD6( " 013482339442 " );            Console.WriteLine(bcd6.GetMobileNo(mobile2));            Console.Read();        }    }}

转载于:https://www.cnblogs.com/windthunder/archive/2011/09/06/2169269.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)