AirScout/ScoutBase/ScoutBase.CAT/ByteFuns.cs

69 wiersze
1.7 KiB
C#

using Microsoft.Win32.SafeHandles;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
namespace ScoutBase.CAT
{
public static class ByteFuns
{
public static bool BytesEqual(byte[] a1, byte[] a2)
{
if (a1.Length != a2.Length)
return false;
for (int i = 0; i < a1.Length; i++)
{
if (a1[i] != a2[i])
return false;
}
return true;
}
// the length of Arr1 and Arr2 must be verified before this function is called
public static byte[] BytesAnd(byte[] a1, byte[] a2)
{
int len = Math.Min(a1.Length, a2.Length);
byte[] result = new byte[len];
for (int i = 0; i < len; i++)
{
result[i] = (byte)(a1[i] & a2[i]);
}
return result;
}
public static void BytesReverse(ref byte[] a)
{
Array.Reverse(a, 0, a.Length);
}
public static string BytesToStr(byte[] a)
{
if (a == null)
return null;
var MyEncoding = Encoding.GetEncoding("Windows-1252");
string s = MyEncoding.GetString(a);
return s;
}
public static byte[] StrToBytes(string s)
{
var MyEncoding = Encoding.GetEncoding("Windows-1252");
return MyEncoding.GetBytes(s);
}
public static string BytesToHex(byte[] a)
{
return BitConverter.ToString(a).Replace("-", "");
}
public static string StrToHex(string s)
{
return BytesToHex(StrToBytes(s));
}
}
}