Отображение переменной с плавающей запятой в виде шестнадцатеричного целого числа облажает соседнее целое число
У меня есть эта простая программа
<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