using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; namespace JiShe.CollectBus.Common { public class DataConvert { /// /// 十进制转二进制 /// /// 十进制数 /// public static string DecToBin(int decimalNumber) { var binaryString = Convert.ToString(decimalNumber, 2); return binaryString; } /// /// 二进制转十六进制 /// /// /// public static string BinToHex(string binaryString) { var decimalNumber = Convert.ToInt32(binaryString, 2);// 将二进制字符串转换为整数 var hexString = Convert.ToString(decimalNumber, 16); //decimalNumber.ToString("X"); // 将整数转换为十六进制字符串 return hexString; } /// /// 十进制转十六进制 /// /// /// public static string DecToHex(int decimalNumber) { var hexString = decimalNumber.ToString("X"); return hexString; } /// /// 二进制转十进制 /// /// /// public static int BinToDec(string binaryString) { var decimalNumber = Convert.ToInt32(binaryString, 2); return decimalNumber; } /// /// 十六进制转十进制 /// /// /// public static int HexToDec(string hexString) { var decimalNumber = Convert.ToInt32(hexString, 16); return decimalNumber; } /// /// 十六进制转二进制 /// /// /// public static string HexToBin(string hexString) { var binaryValue = Convert.ToString(Convert.ToInt32(hexString, 16), 2); return binaryValue; } /// /// 字符串倒序 /// /// /// public static string StringReversed(string str) { var reversed = new string(str.Reverse().ToArray()); return reversed; } /// /// 字符串分割成2个字符一组 /// /// /// public static List StringToPairs(string str) { var pairs = str.Select((ch, index) => new { ch, index }) .GroupBy(x => x.index / 2) .Select(g => string.Concat(g.Select(x => x.ch))) .ToList(); return pairs; } /// /// 格式化字符串 /// /// /// public static string StrAddSpan(string str) { if (str == "") { return ""; } return Regex.Replace(str.Replace(" ", ""), @"(?<=[0-9A-Za-z]{2})[0-9A-Za-z]{2}", " $0").Trim(); } /// /// 格式化字符串且反转 /// /// /// public static string StrReverseOrder(string ste) { if (ste == "") { return ""; } string[] strArr = ste.Split(new string[] { " " }, System.StringSplitOptions.RemoveEmptyEntries); return string.Join(" ", strArr.Reverse()); } /// /// 数据值加33 /// /// /// public static string StrAddHex33(string str) { if (str == "") { return ""; } string[] strArr = str.Split(new string[] { " " }, System.StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < strArr.Length; i++) { strArr[i] = (Convert.ToInt32(strArr[i], 16) + Convert.ToInt32("33", 16)).ToString("X2"); if (strArr[i].Length > 2) { strArr[i] = strArr[i].Substring(strArr[i].Length - 2); } } return string.Join(" ", strArr); } private static string AddHex33(string strGet) { string result; if (string.IsNullOrEmpty(strGet)) { result = ""; } else { string[] source = StrAddSpan(strGet).Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); result = string.Join("", from s in source select (Convert.ToInt32(s, 16) + Convert.ToInt32("33", 16)).ToString("X2")); } return result; } } }