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);
}
}