Advertisement
stgatilov

Hex digit to integer (case-insensitive, bitwise)

Dec 20th, 2015
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.23 KB | None | 0 0
  1. int hextoint_bit_ci(char x) {
  2.     int b = uint8_t(x);
  3.     int maskLetter = (('9' - b) >> 31);
  4.     int maskSmall = (('Z' - b) >> 31);
  5.     int offset = '0' + (maskLetter & int('A' - '0' - 10)) + (maskSmall & int('a' - 'A'));
  6.     return b - offset;
  7. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement