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

C# 将128位转换为8位c的数组#,c#,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]);

我有一个由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]);

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

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

有几种方法可以做到这一点,但可能最简单(但不一定是最有效)的方法是将其转换为字符串,然后在循环中每次提取一个字符:

decimal a=1234567890123456;
string b=a.ToString();
List<int> array = new List<int>();
foreach(char c in b){
    array.Add(int.Parse(c.ToString()));
}
十进制a=1234567890123456;
字符串b=a.ToString();
列表数组=新列表();
foreach(b中的字符c){
Add(int.Parse(c.ToString());
}

澄清你的问题,不清楚你在问什么……谢谢你的回答。实际上我有128位的值,我想把它转换成16个元素的数组,每个元素8位,比如a=1234567890123456我想把它转换成b[]={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6}谢谢,你能给我解释一下这段代码吗?它最终把十进制转换成字符串,把它拆分成单独的数字,再加上一个int[]谢谢,我已经试过了,它工作正常:)。