Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

ByteWriter.cs 725 B

7 år sedan
7 år sedan
7 år sedan
7 år sedan
123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. namespace MQTTnet.Serializer
  3. {
  4. public sealed class ByteWriter
  5. {
  6. private int _index;
  7. private int _byte;
  8. public byte Value => (byte)_byte;
  9. public void Write(int @byte, int count)
  10. {
  11. for (var i = 0; i < count; i++)
  12. {
  13. var value = ((1 << i) & @byte) > 0;
  14. Write(value);
  15. }
  16. }
  17. public void Write(bool bit)
  18. {
  19. if (_index >= 8)
  20. {
  21. throw new InvalidOperationException("End of the byte reached.");
  22. }
  23. if (bit)
  24. {
  25. _byte |= 1 << _index;
  26. }
  27. _index++;
  28. }
  29. }
  30. }