public static void Main()
byte[] data = new byte[100];
var p = WriteInt(data, 0, int.MaxValue);
p = WriteInt(data, p, int.MaxValue);
string s2 = "Was geht ab bei dir";
p = WriteString(data, p, s);
p = WriteString(data, p, s2);
for(int i = 0; i < data.Length; i++)
Console.Write(data[i].ToString("X"));
var ret = ReadInt(data,0);
var ret1 = ReadInt(data,4);
var read = ReadString(data, 5, s.Length);
static int WriteInt(byte[] dest, int pointer, int val)
dest[pointer] = (byte) val;
dest[pointer+1] = (byte) (val >> 8);
dest[pointer+2] = (byte) (val >> 0x10);
dest[pointer+3] = (byte) (val >> 0x18);
static int WriteString(byte[] dest, int pointer, string val)
var tmp = System.Text.Encoding.ASCII.GetBytes(val);
for(int i = 0; i < tmp.Length; i ++)
dest[pointer + i] = tmp[i];
return (pointer + tmp.Length)+1;
static int ReadInt(byte[] dest, int pointer)
return (int)(dest[pointer+3] << 0x18 |
dest[pointer+2] << 0x10 |
static string ReadString(byte[] dest, int pointer, int length)
for(int i = 0 ; i < dest.Length; i ++)
return System.Text.Encoding.ASCII.GetString(dest, pointer, le);