在上次做的項目中,使用到了Socket進行資料通訊,其中用到了一些資料類型進行轉換的方法,現在
貼出來給大家分享下,希望大家多給些意見,能進一步幫忙完善更好了,先謝過了。
/// <summary>
/// 整數轉為Byte【】
/// 低位在前,高位在後
/// </summary>
/// <param name="r">要轉換的整數</param>
/// <param name="digits">Byte位元</param>
/// <returns></returns>
private static byte[] GetBytesFromInt(int r, int digits)
{
byte[] bt = new byte[digits];
int j=8;
for (int k = 0; k < digits; k++)
{
j=8*k;
bt[k]=(byte)(r>>j);
}
return bt;
}
/// <summary>
/// 將字元轉換為Byte數組
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
private static byte[] GetBytesFromStr(string s)
{
byte[] bt = Encoding.UTF8.GetBytes(s);
return bt;
}
/// <summary>
/// 計算字元傳編碼時的位元組長度
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
private static int GetBytesLengthFromStr(string s)
{
int iLength = Encoding.UTF8.GetByteCount(s);
return iLength;
}
/// <summary>
/// 將Byte數組轉化為Int16
/// </summary>
/// <param name="bt"></param>
/// <param name="index"></param>
/// <returns></returns>
private static Int16 GetInt16FromBytes(byte[] bt)
{
Int16 s = BitConverter.ToInt16(bt,0);
return s;
}
/// <summary>
/// 將Byte數組轉化為Int32
/// </summary>
/// <param name="bt"></param>
/// <param name="index"></param>
/// <returns></returns>
private static int GetIntFromBytes(byte[] bt)
{
int s = BitConverter.ToInt32(bt, 0);
return s;
}
/// <summary>
/// 將Byte數組轉化為String
/// </summary>
/// <param name="bt"></param>
/// <param name="index"></param>
/// <returns></returns>
private static string GetStrFromBytes(byte[] bt)
{
string s = BitConverter.ToString(bt, 0);
return s;
}