LINUX.ORG.RU

printf ( «%x\n», -15 );


0

0

В программе на си есть команды:

char I=-15;
printf ( «%x\n», I );

Я ожидал, что printf выведет на экран «f1», вместо этого получил «fffffff1».

Это ошибка, или так и предусмотрено стандартом си?

Сколько реально байт занимает переменная I: 1 или 4?

Что сделать, чтобы 1- и 2-байтные переменные выводились в шестнадцатеричном виде в виде 2- и 4-значных чисел соответственно?

Заранее спасибо.

★★★★★

Сколько чуши насоветывали, писец просто. Никто маны не читает? Единственный правильный вариант печатать char так: «%hhx», short соответствено так: «%hx».

Reset ★★★★★
()
Ответ на: комментарий от Reset

> Сколько чуши насоветывали

Совет пользоваться unsigned уже успел помочь :)

char так: «%hhx», short соответствено так: «%hx».

Спасибо.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

это надо уже конкретно смотреть в доки и спеки.
bc, sdcc, bso c, iar c , avrgcc 4.1 - их либы точно такое не умеют.
и авторы языка си тоже не описывали такие примочки.

elipse ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.