100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C#整数(包括正数和负数)与十六进制byte[]的互相转换(两字节)

C#整数(包括正数和负数)与十六进制byte[]的互相转换(两字节)

时间:2024-04-19 03:08:15

相关推荐

C#整数(包括正数和负数)与十六进制byte[]的互相转换(两字节)

我写代码的时候要用到,但是搜了很多感觉不是很齐全,所以写出来供大家参考。

十六进制byte[]转整数(包括正数和负数):

byte[] a = new byte[2];a[0] = 0x00;a[1] = 0x64;int b = Convert.ToInt16(ToHexString(a, 2), 16);//100

private string ToHexString(byte[] bytes, int length) // 0xAE 0x00 0xCF => "AE00CF"{string hexString = string.Empty;if (bytes != null){StringBuilder builder = new StringBuilder();for (int i = 0; i < length; i++){builder.Append(string.Format("{0:X2}", bytes[i]));}hexString = builder.ToString().Trim();}return hexString;}

整数(包括正数和负数)转十六进制byte[]

byte[] a = new byte[2];if (b < 0){string c = NegativeToHexString(b);a[0] = Convert.ToByte(c.Substring(0, 2), 16);a[1] = Convert.ToByte(c.Substring(2, 2), 16);}else{a[0] = (byte)(b >> 8);a[1] = (byte)b;}

/// <summary>/// 负数转十六进制/// </summary>/// <param name="iNumber"></param>/// <returns></returns>private string NegativeToHexString(int iNumber){string strResult = string.Empty;if (iNumber < 0){iNumber = -iNumber;string strNegate = string.Empty;char[] binChar = Convert.ToString(iNumber, 2).PadLeft(16, '0').ToArray();foreach (char ch in binChar){if (Convert.ToInt32(ch) == 48){strNegate += "1";}else{strNegate += "0";}}int iComplement = Convert.ToInt32(strNegate, 2) + 1;strResult = Convert.ToString(iComplement, 16).ToUpper();}return strResult;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。