c#10进制和16进制相互转换

  • Post author:
  • Post category:其他




大小端问题自己转一下,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 版权协议,转载请附上原文出处链接和本声明。