LittleEndianWriter.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Text;
  5. namespace Utilities
  6. {
  7. public class LittleEndianWriter
  8. {
  9. public static void WriteUInt16(byte[] buffer, int offset, ushort value)
  10. {
  11. byte[] bytes = LittleEndianConverter.GetBytes(value);
  12. Array.Copy(bytes, 0, buffer, offset, bytes.Length);
  13. }
  14. public static void WriteUInt16(byte[] buffer, ref int offset, ushort value)
  15. {
  16. WriteUInt16(buffer, offset, value);
  17. offset += 2;
  18. }
  19. public static void WriteInt16(byte[] buffer, int offset, short value)
  20. {
  21. byte[] bytes = LittleEndianConverter.GetBytes(value);
  22. Array.Copy(bytes, 0, buffer, offset, bytes.Length);
  23. }
  24. public static void WriteUInt32(byte[] buffer, int offset, uint value)
  25. {
  26. byte[] bytes = LittleEndianConverter.GetBytes(value);
  27. Array.Copy(bytes, 0, buffer, offset, bytes.Length);
  28. }
  29. public static void WriteUInt32(byte[] buffer, ref int offset, uint value)
  30. {
  31. WriteUInt32(buffer, offset, value);
  32. offset += 4;
  33. }
  34. public static void WriteInt32(byte[] buffer, int offset, int value)
  35. {
  36. byte[] bytes = LittleEndianConverter.GetBytes(value);
  37. Array.Copy(bytes, 0, buffer, offset, bytes.Length);
  38. }
  39. public static void WriteInt32(byte[] buffer, ref int offset, int value)
  40. {
  41. WriteInt32(buffer, offset, value);
  42. offset += 4;
  43. }
  44. public static void WriteUInt64(byte[] buffer, int offset, ulong value)
  45. {
  46. byte[] bytes = LittleEndianConverter.GetBytes(value);
  47. Array.Copy(bytes, 0, buffer, offset, bytes.Length);
  48. }
  49. public static void WriteUInt64(byte[] buffer, ref int offset, ulong value)
  50. {
  51. WriteUInt64(buffer, offset, value);
  52. offset += 8;
  53. }
  54. public static void WriteInt64(byte[] buffer, int offset, long value)
  55. {
  56. byte[] bytes = LittleEndianConverter.GetBytes(value);
  57. Array.Copy(bytes, 0, buffer, offset, bytes.Length);
  58. }
  59. public static void WriteGuidBytes(byte[] buffer, int offset, Guid value)
  60. {
  61. byte[] bytes = LittleEndianConverter.GetBytes(value);
  62. Array.Copy(bytes, 0, buffer, offset, bytes.Length);
  63. }
  64. public static void WriteGuidBytes(byte[] buffer, ref int offset, Guid value)
  65. {
  66. WriteGuidBytes(buffer, offset, value);
  67. offset += 16;
  68. }
  69. public static void WriteUInt16(Stream stream, ushort value)
  70. {
  71. byte[] bytes = LittleEndianConverter.GetBytes(value);
  72. stream.Write(bytes, 0, bytes.Length);
  73. }
  74. public static void WriteInt32(Stream stream, int value)
  75. {
  76. byte[] bytes = LittleEndianConverter.GetBytes(value);
  77. stream.Write(bytes, 0, bytes.Length);
  78. }
  79. public static void WriteUInt32(Stream stream, uint value)
  80. {
  81. byte[] bytes = LittleEndianConverter.GetBytes(value);
  82. stream.Write(bytes, 0, bytes.Length);
  83. }
  84. }
  85. }