namespace DispenserCommon.Utils; public static class ValueUtil { /// /// 将 int 转为 8 bit 的二进制字符串,前面不足的补 0 /// public static string Int2BitStr(int val, int bitLen) { return new string(Int2BitChars(val, bitLen)); } /// /// /// /// /// public static char[] Int2BitChars(int val, int bitLen) { // 直接将整数val转换为二进制字符串,不考虑十六进制。 var binaryString = Convert.ToString(val, 2); // 如果val为负数,binaryString将包含二进制补码形式的字符串,其长度可能超过bitLen。 // 根据需要裁剪或填充字符串以适应指定的位长度(bitLen)。 if (binaryString.Length > bitLen) // 对于负数,去除多余的前导'1'。 binaryString = binaryString.Substring(binaryString.Length - bitLen); else // 填充以达到所需长度。 binaryString = binaryString.PadLeft(bitLen, '0'); // 反转和转换为字符数组。 var chars = binaryString.Reverse().ToArray(); return chars; } public static int BitChars2Int(char[] chars) { return Convert.ToInt32(new string(chars), 2); } }