#include<stdio.h>
int main( void )
{
printf( "%x\n", (2 / 1.1) );
/*
* output 0xd1745d17
*/
printf( "%lld\n", (2 / 1.1) );
/*
* The output is 461086718213150359
* corresponding to hexadecimal 0x3ffd1745 d1745d17
*/
printf( "%x\n", (int)(2 / 1.1) );
/*
* Output 0x1
*/
printf( "%lld\n",(int) (2 / 1.1) );
/*
* The output is 4610867178617438209
* corresponding to hexadecimal 3ffd1745 00000001
*/
return 0;
}
%d to %f
If you change the title, you’d better say it in the content, or I’ll become my pot if I don’t answer the right question.
I don’t know what you are going to ask, but why did this happen?
If you want to know this result
I can tell you that the reason for this result is that numbers expressed in floating-point numbers are interpreted in integer form (non-explicit or implicit conversion).
In popular terms, you means “you” in English and “you” in pinyin.
Specific you can BaiduIEEE floating point notation.