-
轉十進制
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