一、如何定义
1.整型(int):
十进制数:默认格式,无需前缀。
八进制数:使用前缀 0
十六进制数:使用前缀 0x。
int a = 42; // 十进制数 42
int b = 052; // 八进制数 52,等于十进制数 42
int c = 0x2A; // 十六进制数 2A,等于十进制数 42
2.浮点数(float 或 double)
十进制数:默认格式,无需前缀。
十六进制数:使用前缀 0x
。
float a = 3.14; // 十进制浮点数 3.14
float b = 0x1.91eb86p+1; // 十六进制浮点数 0x1.91eb86p+1,等于十进制数 3.14
3.字符型(char)
十进制数:使用整数值。
八进制数:使用前缀 0
。
十六进制数:使用前缀 0x
char a = 65; // 十进制字符 'A',对应整数值 65
char b = 0101; // 八进制字符 'A',对应整数值 65
char c = 0x41; // 十六进制字符 'A',对应整数值 65
二、如何输出
printf("%d",65); //十进制
printf("%o",052);//八进制
printf("%X",0x2A);//十六进制
常用占位符:
%a :⼗六进制浮点数,字⺟输出为⼩写。
• %A :⼗六进制浮点数,字⺟输出为⼤写。
• %c :字符。
• %d :⼗进制整数。
• %e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。
• %E :使⽤科学计数法的浮点数,指数部分的 E 为⼤写。
• %i :整数,基本等同于 %d 。
• %g :6个有效数字的浮点数。整数部分⼀旦超过6位,就会⾃动转为科学计数法,指数部分的 e 为⼩写。
• %G :等同于 %g ,唯⼀的区别是指数部分的 E 为⼤写。
• %hd :⼗进制 short int 类型。
• %ho :⼋进制 short int 类型。
• %hx :⼗六进制 short int 类型。
• %hu :unsigned short int 类型。
• %ld :⼗进制 long int 类型。
• %lo :⼋进制 long int 类型。
• %lx :⼗六进制 long int 类型。
• %lu :unsigned long int 类型。
• %lld :⼗进制 long long int 类型。
• %llo :⼋进制 long long int 类型。
• %llx :⼗六进制 long long int 类型。
• %llu :unsigned long long int 类型。
• %o :⼋进制整数。
• %u :⽆符号整数(unsigned int)。
• %x :⼗六进制整数。
三、进制之间的转换
例:
十进制向八进制和十六进制转化
int main()
{
int a = 123;
printf("%o\n", a);//转化为八进制
printf("%X\n", a);//转化为十六进制
return 0;
}
类似的,高进制向低进制的转换只需要正确定义数字类型和输出时作用的占位符即可。