Code: Selecteer alles
public static unsafe void Zero(byte[] array)
{
int count = array.Length;
fixed (byte* pArr = array)
{
while (count > 0)
{
*pArr = 0; // *var = de waarde op de plaats waar de pointer naar wijst.
pArr++; // Zonder sterretje de waarde van de pointer, dus het adres.
count--;
}
}
}
public static unsafe void Zero(Point p)
{
fixed (int* x = &p.x, y = &p.y) // &var is het adres van de waarde,
{
// dus maakt er een pointer van.
*x = 0;
*y = 0;
}
}
Code: Selecteer alles
byte[] invoer = new byte[512];
Code: Selecteer alles
uint[] uitvoer = new uint[128];
Code: Selecteer alles
invoer = {0x3e,0xc7,0x01,0x15,...}//hier eventjes pseudocode
Code: Selecteer alles
uitvoer = {0x3ec70115,...}
Code: Selecteer alles
static void Main(string[] args)
{
uint[] values;
values = GetUInts(new byte[]{
0x3e,0xc7,0x01,0x15,
0xBE,0xBA,0xFE,0xCA,
0x01,0x23,0x45,0x67});
foreach (uint val in values)
{
Console.WriteLine("{0:X}", val);
}
Console.ReadLine();
}
public static unsafe uint[] GetUInts(byte[] array)
{
int count = array.Length / 4;
uint[] result = new uint[count];
fixed (uint* pfResult = result)
{
uint* pResult = pfResult;
fixed (byte* pArr = array)
{
uint* pArr2 = (uint*)pArr;
while (count > 0)
{
*pResult = *pArr2;
pResult++;
pArr2++;
count--;
}
}
}
return result;
}
Code: Selecteer alles
1501C73E
CAFEBABE
67452301