Замість використання існуючих службових програм, ви можете спробувати перетворення нижче за допомогою логічної операції:
У верхній регістр:
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