BitConverter是最简单的方法,但如果你想控制字节的顺序,你可以自己进行位移.
int foo = int.MaxValue;
byte lolo = (byte)(foo & 0xff);
byte hilo = (byte)((foo >> 8) & 0xff);
byte lohi = (byte)((foo >> 16) & 0xff);
byte hihi = (byte)(foo >> 24);
Run Code Online (Sandbox Code Playgroud)
另外..BitConverter的实现使用不安全和指针,但它简短而简单.
public static unsafe byte[] GetBytes(int value)
{
byte[] buffer = new byte[4];
fixed (byte* numRef = buffer)
{
*((int*) numRef) = value;
}
return buffer;
}
Run Code Online (Sandbox Code Playgroud)
尝试
BitConverter.GetBytes()
http://msdn.microsoft.com/en-us/library/system.bitconverter.aspx
请记住,返回数组中字节的顺序取决于系统的字节顺序.
编辑:至于Lua部分,我不知道如何转换回来.您总是可以乘以16来获得与按位移位相同的功能.它不是很漂亮,我会想象有一些库或某些东西可以实现它.同样,添加字节的顺序取决于字节顺序,因此您可能想要阅读它
也许你可以转换回C#?