Вместо использования существующих утилит вы можете попробовать преобразование ниже с использованием логической операции:
В верхний регистр:
char upperChar = 'l' & 0x5f
В нижний регистр:
char lowerChar = 'L' ^ 0x20
Как это работает:
Двоичная, шестнадцатеричная и десятичная таблица:
------------------------------------------
| Binary | Hexadecimal | Decimal |
-----------------------------------------
| 1011111 | 0x5f | 95 |
------------------------------------------
| 100000 | 0x20 | 32 |
------------------------------------------
Давайте рассмотрим пример небольшой конверсии l
в L
:
Двоичная операция И: (l & 0x5f)
Символ l
имеет ASCII 108, а 01101100
является двоичным представлением.
1101100
& 1011111
-----------
1001100 = 76 in decimal which is **ASCII** code of L
Аналогично преобразование L
в l
:
Двоичная операция XOR: (L ^ 0x20)
1001100
^ 0100000
-----------
1101100 = 108 in decimal which is **ASCII** code of l
person
Rahul Sharma
schedule
01.08.2016