Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

printf(): вывод числового значения байта, вместо вывода соответствующего ему символа

28K
25 сентября 2008 года
Tirpitz
32 / / 05.05.2008
Как нужно задать управляющую последовательность, чтобы функция printf() вывела числовое значение байта в виде двух шестнадцатеричных цифр?
341
25 сентября 2008 года
Der Meister
874 / / 21.12.2007
%2x - строчными буквами, %2X - прописными
28K
25 сентября 2008 года
Tirpitz
32 / / 05.05.2008
Я уже пробовал %2x, но смутило то, что для определенных значений функция printf() выводила не две шестнадцатеричные цифры, а восемь. Сейчас поподставлял разные числа, и оказалось, что такое происходит только с теми числами, которые не попадают в диапазон допустимых для signed char (-128...127), и, похоже, функция printf() делает им integral promotion (не помню русский вариант термина) до signed int. Отсюда и восемь шестнадцатеричных цифр. Проблема решилась следующим образом:
 
Код:
printf("%02x", (unsigned char) 255);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог