mik*_*ike 1 c# arrays math garbage-collection
如何将数值(例如,,,...)转换float为short多个int值,byte而不必像那样在堆上为数组分配内存System.BitConverter.GetBytes?
像这样的东西:
public static void GetBytes(short input, out byte byte0, out byte byte1)
{
//demo code, just to show which results I need
var bytes = System.BitConverter.GetBytes(input);
byte0 = bytes[0];
byte1 = bytes[1];
}
Run Code Online (Sandbox Code Playgroud)
注意:我仅限于 .NET Framework 4.8,因此(我认为)C# 7.3。
只是施放和转移?
public static void GetBytes(short input, out byte byte0, out byte byte1)
{
byte0 = (byte)input;
byte1 = (byte)(input >> 8);
}
Run Code Online (Sandbox Code Playgroud)
请注意,您可以简单地反转不同字节顺序的顺序。
请注意,如果您使用“已检查”上下文,则还需要屏蔽:
public static void GetBytes(short input, out byte byte0, out byte byte1)
{
byte0 = (byte)(input & 0xFF);
byte1 = (byte)((input >> 8) & 0xFF);
}
Run Code Online (Sandbox Code Playgroud)
(在未经检查的上下文中,强制转换byte本身就足够了 - 附加位被丢弃)
| 归档时间: |
|
| 查看次数: |
506 次 |
| 最近记录: |