C语言二进制、八进制和十六进制
C语言中二进制、八进制和十六进制分别表示不同的进制数。
二进制:二进制数是由0和1组成的数,以0b或0B为前缀。例如,二进制数1010表示十进制的10。
八进制:八进制数是由0到7组成的数,以0为前缀。例如,八进制数012表示十进制的10。
十六进制:十六进制数是由0到9和A到F(大小写均可)组成的数,以0x或0X为前缀。例如,十六进制数0xA表示十进制的10。
在C语言中,可以使用不同的表示方式来初始化变量或输出数据。例如:
int bin = 0b1010; // 用二进制表示变量bin的值为10
int oct = 012; // 用八进制表示变量oct的值为10
int hex = 0xA; // 用十六进制表示变量hex的值为10
printf("二进制:%d\n", bin); // 输出:二进制:10
printf("八进制:%d\n", oct); // 输出:八进制:10
printf("十六进制:%d\n", hex); // 输出:十六进制:10
需要注意的是,不同进制之间可以相互转换,例如,可以使用atoi
函数将字符串表示的二进制、八进制或十六进制数转换为十进制数。例如:
int dec = atoi("1010"); // 将二进制数1010转换为十进制数10
int dec = strtol("012", NULL, 8); // 将八进制数012转换为十进制数10
int dec = strtol("0xA", NULL, 16); // 将十六进制数0xA转换为十进制数10