public static int scanHex(byte[]bytes, int p, int len, Encoding enc) { int v = 0; int c; while (len-- > 0 && enc.isXDigit(c = bytes[p++] & 0xff)) { v = (v << 4) + enc.xdigitVal(c); } return v; }
public static int scanHex(byte[]bytes, int p, int len, Encoding enc) { int v = 0; int c; while (len-- > 0 && enc.isXDigit(c = bytes[p++] & 0xff)) { v = (v << 4) + enc.xdigitVal(c); } return v; }
public static int scanHex(byte[]bytes, int p, int len, Encoding enc) { int v = 0; int c; while (len-- > 0 && enc.isXDigit(c = bytes[p++] & 0xff)) { v = (v << 4) + enc.xdigitVal(c); } return v; }
public static int scanHex(byte[]bytes, int p, int len, Encoding enc) { int v = 0; int c; while (len-- > 0 && enc.isXDigit(c = bytes[p++] & 0xff)) { v = (v << 4) + enc.xdigitVal(c); } return v; }
protected final int scanUnsignedHexadecimalNumber(int minLength, int maxLength) { int last = c; int num = 0; int restLen = maxLength - minLength; while(left() && maxLength-- != 0) { fetch(); if (enc.isXDigit(c)) { int val = enc.xdigitVal(c); if ((Integer.MAX_VALUE - val) / 16 < num) return -1; num = (num << 4) + val; } else { unfetch(); maxLength++; break; } } if (maxLength > restLen) return -2; c = last; return num; }
protected final int scanUnsignedHexadecimalNumber(int minLength, int maxLength) { int last = c; int num = 0; int restLen = maxLength - minLength; while(left() && maxLength-- != 0) { fetch(); if (enc.isXDigit(c)) { int val = enc.xdigitVal(c); if ((Integer.MAX_VALUE - val) / 16 < num) return -1; num = (num << 4) + val; } else { unfetch(); maxLength++; break; } } if (maxLength > restLen) return -2; c = last; return num; }