将一个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();
}
}
}