You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ArrayUtils.cpp 985B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //
  2. // Created by robin on 7/23/16.
  3. //
  4. #include "libnfc_cpptools/ArrayUtils.h"
  5. namespace LibNfc
  6. {
  7. namespace Utils
  8. {
  9. void ArrayUtils::setArrayBit(char *buf, const char &bitPosition, const bool &value)
  10. {
  11. char byteOffset = (char)(bitPosition / 8);
  12. char bitOffset = (char)(7 - (bitPosition % 8));
  13. if(value)
  14. {
  15. buf[byteOffset] |= (1 << bitOffset);
  16. }
  17. else
  18. {
  19. buf[byteOffset] &= ~(1 << bitOffset);
  20. }
  21. }
  22. void ArrayUtils::setArrayBit(unsigned char *buf, const char &bitPosition, const bool &value)
  23. {
  24. setArrayBit((char*)buf, bitPosition, value);
  25. }
  26. bool ArrayUtils::getArrayBit(const char *buf, const char &bitPosition)
  27. {
  28. char byteOffset = (char)(bitPosition / 8);
  29. char bitOffset = (char)(7 - (bitPosition % 8));
  30. return (buf[byteOffset] >> bitOffset) & 1 == 1;
  31. }
  32. bool ArrayUtils::getArrayBit(const unsigned char *buf, const char &bitPosition)
  33. {
  34. return getArrayBit((const char *)buf, bitPosition);
  35. }
  36. }; // Utils
  37. }; // LibNfc