【发布时间】:2017-07-29 20:46:30
【问题描述】:
想知道如何以相反的顺序将 int 转换为 List 并用零填充,反之亦然?
有一个字节代表List(8),有时2个字节代表List(16),8个字节代表List(64);所以寻找一个好的解决方案来处理转换为 int 列表,然后再次操作。
例如将 3 输入到 1,1,0,0,0,0,0,0 列表中
或将 42 输入到 0,1,0,1,0,1,0,0 的列表中
反之亦然,取 1,1,0,0,0,0,0,0 的列表并返回 3 或 0,1,0,1,0,1,0,0 的列表并返回42
我目前所做的是构建了几个函数来处理这两种情况,一切正常,只是想知道是否有更好/更优雅的解决方案我完全忽略了?
private List<int> IntToList(int _Input)
{
string _Binary = ReverseString(Convert.ToString(_Input, 2).PadLeft(8, '0'));
List<int> _List = new List<int>(8);
for (int i = 0; i < _Binary.Length; i++)
{
_List.Add(Convert.ToInt32(_Binary.Substring(i, 1)));
}
return _List;
}
private int IntsToByte(List<int> _List)
{
string _Binary = "";
for (int i = 7; i > -1; i--)
{
_Binary += _List[i];
}
return Convert.ToInt32(_Binary, 2);
}
【问题讨论】:
-
修复了这些,但列出了
(8) -
使用
BitArray, msdn.microsoft.com/en-us/library/… -
感谢 Jodrell,需要阅读一下,但已同意 Jean Bob 的回答,因为更适合我的需要。