将128位转换为8位c#的数组

时间:2017-05-10 22:28:30

标签: c#

我有一个由128位(16字节)组成的十进制值 我想将其转换为8位数组,例如

decimal a='1234567890123456'// 128 bit.  
int [] k =[1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6];  

你能帮我用C#语言编写代码吗?

我可以在C#中声明int 128位而不是十进制值吗?

我尝试过这段代码,但我正在寻找另一种方式

subk[i] = decimal.ToInt32(key);
SubKeys.Items.Add(subk[i]);

2 个答案:

答案 0 :(得分:0)

您可以使用LINQ来解决问题:

decimal a = 1234567890123456;// 128 bit.
int[] k = a.ToString().Select(digit => int.Parse(digit.ToString())).ToArray();

答案 1 :(得分:0)

有几种方法可以做到,但也许最容易(但不一定最有效)的方法是将其转换为字符串,然后在循环中一次取一个字符:

decimal a=1234567890123456;
string b=a.ToString();
List<int> array = new List<int>();
foreach(char c in b){
    array.Add(int.Parse(c.ToString()));
}