char a[] = { 'a', 'b', 'c', 'd', 'f' }; int i; int j = 1515870810; printf("%x\n", j); //输出结果为: 2f printf("%X\n", j); //输出结果为: 2F printf("%#x\n", j); //输出结果为: 0x2f printf("%#X\n", j); //输出结果为: 0X2F %#X推荐使用 for (i = ...
你的编译器得支持64位整形数才行。这样的话long long就是64位的数,输出可改为:printf("0X%016LLX",b);否则的话只能变通一下:if(b<0)printf("0XFFFFFFFF%8X",b);else printf("0X%016X",b);
这个是因为中文字符的编码方式和ascii是不一样的,你用的是gbk编码方式,每个中文汉字是两个字节,且编码上高位的字节都是1,这是编码表上设定好的,如果采用utf8编码,那么又是另外一套编码方式,输出也会不一样