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

将一个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 != 12return mobileArray;
            
for (int i = 0; i < 6; i++)
            {
                mobileArray[i] 
= Convert.ToByte(mobileNo.Substring(i*22), 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] { 0x010x340x820x330x940x42 };
            BCD6 bcd6 
= new BCD6();
            Console.WriteLine(bcd6.GetMobileNo(mobileArray));

            
byte[] mobile2 = bcd6.ConvertToBCD6("013482339442");
            Console.WriteLine(bcd6.GetMobileNo(mobile2));

            Console.Read();
        }
    }
}
posted @ 2011-09-06 22:44  清凉一夏  阅读(3761)  评论(0编辑  收藏  举报