-
转十进制
int
上面函数,只需要将第一个参数填写转换数值,第二个参数描述函数是哪个进制的数即可。 -
转二进制
bin
该函数为十进制转二进制函数。因此如果是十六进制或者八进制数需要先调用int
函数转为十进制。 -
转八进制
oct
该函数为十进制转八进制函数。因此如果是十六进制或者二进制数需要先调用int
函数转为十进制。 -
转16进制
hex
该函数为十进制转十六进制函数。因此如果是八进制或者二进制数需要先调用int
函数转为十进制。
关于c语言的进制转换
网上很多人都是自己手写的进制转换函数,但是c语言的格式化输入输出函数已经支持进制转化,所以我们可以使用sprintf
和sscanf
进行转换。
sprintf
函数通过指定占位符%o %u %x
来输入特定进制的数;sscanf
通过%i
占位符自动将输入识别成相应进制数。
如果只是单纯的转换调用printf
即可,毕竟机器内部都是二进制存储。
#include <stdio.h>
int main(int argc, char* arv[])
{
int a = 010;
int b = 10;
int c = 0x10;
printf("%o\n%d\n%x\n", a, a, a);
printf("%o\n%d\n%x\n", b, b, b);
printf("%o\n%d\n%x\n", c, c, c);
return 0;
}
output:
10
8
8
12
10
a
20
16
10