从字节数组中读取单个字节的最佳方法
Best way to read single byte from array of bytes
我有一个字节数组,我想一个一个地读取这些字节并将其转换为 int。我正在获取数组字节中的日期,因此需要从中创建 DataTime 对象。我正在使用以下代码。从性能角度来看,最好的方法应该是什么。
byte[] date = {25, 10, 13, 04, 16, 26} //day month year hour minute second
CaptureTime = new DateTime(
(int)(new ArraySegment<byte>(date, 2, 1).ToArray()[0]), // Year
(int)(new ArraySegment<byte>(date, 1, 1).ToArray()[0]), // Month
(int)(new ArraySegment<byte>(date, 0, 1).ToArray()[0]), // Day
(int)(new ArraySegment<byte>(date, 3, 1).ToArray()[0]), //Hours
(int)(new ArraySegment<byte>(date, 4, 1).ToArray()[0]), //Minutes
(int)(new ArraySegment<byte>(date, 5, 1).ToArray()[0])); //Seconds
上面的代码工作正常,但从性能的角度来看也很好,或者有更好的方法来处理这个问题?
byte
是一个 8 位无符号整数,在需要时会隐式地向上转换为 int
。
也许我想的不够多,但是显而易见和高效有什么问题:
byte[] octets = {25, 10, 13, 04, 16, 26} //day month year hour minute second
DateTime date = new DateTime(
2000 + octets[2] , // year
octets[1] , // month
octets[0] , // day
octets[3] , // hour
octets[4] , // minutes
octets[5] // seconds
) ;
Console.WriteLine( "The date is: {0:F}" , date ) ;
产生预期的结果:
The date is: Friday, October 25, 2013 4:16:26 AM
我有一个字节数组,我想一个一个地读取这些字节并将其转换为 int。我正在获取数组字节中的日期,因此需要从中创建 DataTime 对象。我正在使用以下代码。从性能角度来看,最好的方法应该是什么。
byte[] date = {25, 10, 13, 04, 16, 26} //day month year hour minute second
CaptureTime = new DateTime(
(int)(new ArraySegment<byte>(date, 2, 1).ToArray()[0]), // Year
(int)(new ArraySegment<byte>(date, 1, 1).ToArray()[0]), // Month
(int)(new ArraySegment<byte>(date, 0, 1).ToArray()[0]), // Day
(int)(new ArraySegment<byte>(date, 3, 1).ToArray()[0]), //Hours
(int)(new ArraySegment<byte>(date, 4, 1).ToArray()[0]), //Minutes
(int)(new ArraySegment<byte>(date, 5, 1).ToArray()[0])); //Seconds
上面的代码工作正常,但从性能的角度来看也很好,或者有更好的方法来处理这个问题?
byte
是一个 8 位无符号整数,在需要时会隐式地向上转换为 int
。
也许我想的不够多,但是显而易见和高效有什么问题:
byte[] octets = {25, 10, 13, 04, 16, 26} //day month year hour minute second
DateTime date = new DateTime(
2000 + octets[2] , // year
octets[1] , // month
octets[0] , // day
octets[3] , // hour
octets[4] , // minutes
octets[5] // seconds
) ;
Console.WriteLine( "The date is: {0:F}" , date ) ;
产生预期的结果:
The date is: Friday, October 25, 2013 4:16:26 AM