16进制转10进制问题
#include <stdio.h>
#include <math.h>
int main ()
{
int c;
c=0xe555;
printf("c is %d",c);
return 0;
}
#include <stdio.h>
#include <math.h>
int main ()
{
int c;
c=0xe555;
printf("c is %x\n", c);//16进制
printf("c is %+d\n", c);//带符号十进制
return 0;
}
/** 没有用到数学函数,不需要包含math.h */
#include <stdio.h>
/** main函数的标准写法只有int main(void)和int main(int argc, char* argv[])这两种 */
int main(void)
{
/** 在32位编译器中,16位有符号数用short int来声明 */
short int c;
c = 0xe555;
/** c的符号位为1,直接打印10进制为负数-6827 */
printf("c is %d\n", c);
/** 对于16位的16进制而言,是不关注符号位的,所以应该先转为无符号数,然后用%04x限定只打印16位 */
printf("c is %04x\n", (unsigned short int)c);
return 0;
}