Initial Commit
This commit is contained in:
86
TomcatServer/CrossProduct.Core/BinaryEncoder.cs
Normal file
86
TomcatServer/CrossProduct.Core/BinaryEncoder.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace CrossProduct.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// the binary encoder class
|
||||
/// </summary>
|
||||
public class BinaryEncoder
|
||||
{
|
||||
/// <summary>
|
||||
/// Binaries to string.
|
||||
/// </summary>
|
||||
/// <param name="BinaryConvert">The binary convert.</param>
|
||||
/// <returns></returns>
|
||||
public static string BinaryToString(byte[] BinaryConvert)
|
||||
{
|
||||
return BinaryToString(BinaryConvert, BinaryConvert.Length);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Binaries to string.
|
||||
/// </summary>
|
||||
/// <param name="BinaryConvert">The binary convert.</param>
|
||||
/// <param name="lConvertLength">Length of the l convert.</param>
|
||||
/// <returns></returns>
|
||||
public static string BinaryToString(byte[] BinaryConvert, int lConvertLength)
|
||||
{
|
||||
if (BinaryConvert == null)
|
||||
return "";
|
||||
|
||||
int nIndex;
|
||||
StringBuilder buildString = new StringBuilder(lConvertLength * 2);
|
||||
|
||||
for (nIndex = 0; nIndex < lConvertLength; nIndex++)
|
||||
{
|
||||
buildString.AppendFormat("{0:X2}", BinaryConvert[nIndex]);
|
||||
}
|
||||
|
||||
return buildString.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Strings to binary.
|
||||
/// </summary>
|
||||
/// <param name="BinaryConvert">The binary convert.</param>
|
||||
/// <param name="bAssumeString">if set to <c>true</c> [b assume string].</param>
|
||||
/// <returns></returns>
|
||||
public static byte[] StringToBinary(string BinaryConvert, bool bAssumeString)
|
||||
{
|
||||
if (BinaryConvert == null || BinaryConvert == "")
|
||||
return new byte[0];
|
||||
|
||||
int nLength = BinaryConvert.Length / 2;
|
||||
|
||||
if (bAssumeString)
|
||||
{
|
||||
if (BinaryConvert.Substring(BinaryConvert.Length - 2, 2) == "00")
|
||||
nLength--;
|
||||
}
|
||||
|
||||
int nIndex;
|
||||
int nPos;
|
||||
byte[] ReturnArray = new byte[nLength];
|
||||
|
||||
for (nPos = 0, nIndex = 0; nPos < nLength; nIndex += 2, nPos++)
|
||||
{
|
||||
ReturnArray[nPos] = byte.Parse(BinaryConvert.Substring(nIndex, 2), System.Globalization.NumberStyles.HexNumber);
|
||||
}
|
||||
|
||||
return ReturnArray;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Strings to binary.
|
||||
/// </summary>
|
||||
/// <param name="BinaryConvert">The binary convert.</param>
|
||||
/// <returns></returns>
|
||||
public static byte[] StringToBinary(string BinaryConvert)
|
||||
{
|
||||
return StringToBinary(BinaryConvert, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user