对于你们中的一些人来说这可能是一个愚蠢的问题,但我需要问一下。 我有这个问题,我无法弄清楚。如果有人有任何想法,如果你和我分享,我会很高兴。 我有一个UInt64,我必须转换为二进制,并在组上拆分5位。 然后根据每组位设置不同的值。 我的问题是我无法找到一种将其转换为5位组的好方法。
之后我将为每个组指定一个不同的值。例如:
00000 - 0
00001 - a
00010 - B
00011 - c
00100 - d
.......
有任何想法或建议吗?
以后更改价值的最佳方法是什么?我在想一个Switch
Switch()
{
case "00000" : return 0;
case "00001" : return a;
case "00010" : return B;
case "00011" : return c;
}
这是一个更多的解释,我想得到的是这个。例如,我有64Uint = 1234123;
从中我想获得以下数组:
Array[,] something = new Array[12,5];
答案 0 :(得分:2)
使用BitConverter.GetBytes()将Uint64转换为字节。
答案 1 :(得分:1)
您可以使用位掩码以五位为一组拆分uint64:
UInt64 a = 1234;
for (int i = 0; i < 64; i += 5)
{
uint fiveBits = (uint)((a >> i) & 31);
// fiveBits is between 0 and 31
}