Bin.java 948 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package com.genersoft.iot.vmp.jt1078.util;
  2. /**
  3. * 32位整型的二进制读写
  4. */
  5. public class Bin {
  6. private static final int[] bits = new int[32];
  7. static {
  8. bits[0] = 1;
  9. for (int i = 1; i < bits.length; i++) {
  10. bits[i] = bits[i - 1] << 1;
  11. }
  12. }
  13. /**
  14. * 读取n的第i位
  15. *
  16. * @param n int32
  17. * @param i 取值范围0-31
  18. */
  19. public static boolean get(int n, int i) {
  20. return (n & bits[i]) == bits[i];
  21. }
  22. /**
  23. * 不足位数从左边加0
  24. */
  25. public static String strHexPaddingLeft(String data, int length) {
  26. int dataLength = data.length();
  27. if (dataLength < length) {
  28. StringBuilder dataBuilder = new StringBuilder(data);
  29. for (int i = dataLength; i < length; i++) {
  30. dataBuilder.insert(0, "0");
  31. }
  32. data = dataBuilder.toString();
  33. }
  34. return data;
  35. }
  36. }