code: @Nullable
      public static String convertBytesToVersionString(@Nullable int[] components, final int majorDigits)
      {
          if (components == null)
              return null;
          StringBuilder version = new StringBuilder();
          for (int i = 0; i < 4 && i < components.length; i++) {
              if (i == majorDigits)
                  version.append('.');
              char c = (char)components[i];
              if (c < '0')
                  c += '0';
              if (i == 0 && c == '0')
                  continue;
              version.append(c);
          }
          return version.toString();
      }
docs: Takes a series of 4 bytes from the specified offset, and converts these to a
  well-known version number, where possible.
  <p>
  Two different formats are processed:
  <ul>
  <li>[30 32 31 30] -&gt; 2.10</li>
  <li>[0 1 0 0] -&gt; 1.00</li>
  </ul>
  
  @param components  the four version values
  @param majorDigits the number of components to be
  @return the version as a string of form "2.10" or null if the argument cannot be converted