大小端问题自己转一下,c#是小端
例如:大端 01 02 03 04转小端04 03 02 01
1.float(4字节)和16进制相互转换
/// <summary>
/// 16进制字符串转10进制float(4字节)
/// </summary>
/// <param name="floatStr16">例如:41A40000</param>
/// <returns></returns>
public float HexString2FloatDec(string floatStr16)
{
UInt32 a = Convert.ToUInt32(floatStr16, 16);
return BitConverter.ToSingle(BitConverter.GetBytes(a), 0);
}
/// <summary>
/// 10进制float(4字节)转16进制字符串
/// </summary>
/// <param name="decF">例如:20.5f</param>
/// <returns></returns>
public string FloatDec2HexString(float decF)
{
byte[] bytes = BitConverter.GetBytes(decF);
string hexStr = BitConverter.ToInt32(bytes, 0).ToString("X2");
for (int i = hexStr.Length; i < 8; i++)
{
hexStr = hexStr.Insert(0, "0");
}
return hexStr;
}
2.short(2字节)和16进制相互转换
/// <summary>
/// 方法一
/// 16进制字符串转10进制short(2字节)
/// </summary>
/// <param name="str16"></param>
/// <returns></returns>
public short HexString2ShortDec1(string str16)
{
return Convert.ToInt16(str16, 16);
}
/// <summary>
/// 方法二
/// 16进制字符串转10进制short(2字节)
/// </summary>
/// <param name="str16"></param>
/// <returns></returns>
public short HexString2ShortDec2(string str16)
{
return short.Parse(str16, NumberStyles.AllowHexSpecifier);
}
/// <summary>
/// 方法一
/// short(2字节)转16进制
/// </summary>
/// <param name="dec"></param>
/// <returns></returns>
public string ShortDec2HexString1(short dec)
{
string hexStr = dec.ToString("X2");
for (int i =hexStr.Length; i < 4; i++)
{
hexStr = hexStr.Insert(0, "0");
}
return hexStr;
}
/// <summary>
/// 方法二
/// short(2字节)转16进制
/// </summary>
/// <param name="dec"></param>
/// <returns></returns>
public string ShortDec2HexString2(short dec)
{
string hexStr = Convert.ToString(dec, 16).ToUpper();
for (int i =hexStr.Length; i < 4; i++)
{
hexStr = hexStr.Insert(0, "0");
}
return hexStr;
}
3.int(4字节)和16进制相互转换
/// <summary>
/// 方法一
/// 16进制字符串转10进制int(4字节)
/// </summary>
/// <param name="str16"></param>
/// <returns></returns>
public int HexString2IntDec1(string str16)
{
return Convert.ToInt32(str16, 16);
}
/// <summary>
/// 方法二
/// 16进制字符串转10进制int(4字节)
/// </summary>
/// <param name="str16"></param>
/// <returns></returns>
public int HexString2IntDec2(string str16)
{
return int.Parse(str16, NumberStyles.AllowHexSpecifier);
}
/// <summary>
/// 方法一
/// int(4字节)转16进制
/// </summary>
/// <param name="dec"></param>
/// <returns></returns>
public string IntDec2HexString1(int dec)
{
string hexStr = dec.ToString("X2");
for (int i = hexStr.Length; i < 8; i++)
{
hexStr = hexStr.Insert(0, "0");
}
return hexStr;
}
/// <summary>
/// 方法二
/// int(4字节)转16进制
/// </summary>
/// <param name="dec"></param>
/// <returns></returns>
public string IntDec2HexString2(int dec)
{
string hexStr = Convert.ToString(dec, 16).ToUpper();
for (int i = hexStr.Length; i < 8; i++)
{
hexStr = hexStr.Insert(0, "0");
}
return hexStr;
}
版权声明:本文为qq_39945752原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。