Отображение переменной с плавающей запятой в виде шестнадцатеричного целого числа облажает соседнее целое число

У меня есть эта простая программа

<code>#include <stdio.h>
int main(void)
{
 unsigned int a = 0x120;
 float b = 1.2;
 printf("%X %X\n", b, a);
 return 0;
}
</code>

Я ожидал, что результат будет

<code>some-value 120  (some-value will depend on the bit pattern of `float b` )
</code>

А я вижу

<code>40000000 3FF33333
</code>

Почему ценностьa облажаться?%X рассматривает свои аргументы какsigned int и, следовательно, он должен был извлечь 4 байта из стека и распечатать значениеb и затем, извлекая следующие 4 байта, выведите значениеa который0x120

Ответы на вопрос(2)

Ваш ответ на вопрос