将一个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上百实例源码以及开源项目