Страницы

Поиск по вопросам

суббота, 27 апреля 2019 г.

Получение кода символа

int main(void) {
printf("%d",(int)'А'); }
По идее, программа должна вывести код 'А'(кириллица), т.е. 192, но почему-то выводит -64.


Ответ

Тип char может вести себя либо как тип signed char либо как тип unsigned char в зависимости от установленных опций компилятора.
В вашем случае тип char ведет себя как тип signed char
Для типа signed char максимальное положительное значение равно 127 или в шестнадцатиричной форме 0x7F
Если хотите получить положительное значения кода, то напишите
printf("%d",(unsigned char)'А');
При этом русская буква не должна быть представлена как многобайтная константа.

Комментариев нет:

Отправить комментарий