用C語言程式,解決數制之間的轉化,超簡單,告別進位制的問題!
1、首先,需要先明白printf()函式的輸出格式控制引數:
%d:十進位制有符號整數
%u:十進位制無符號整數
%f:十進位制浮點數
%o:八進位制數
%x:十六進位制數
2、再者,就是需要明白數制的定義:
二進位制就是逢二進一;
八進位制就是逢八進一;
十進位制就不說了;
十六進位制就是逢十六進一,十六進位制有十六個數:1、2、3、4、5、6、7、8、9、A=10、B=11、C=12、D=13、E=14、F=15;
3、最後,就是需要了解數制的換算:
舉例說明:
二進位制 十進位制
1000 = 1*2^3+0*2^2+0*2^1+0*2^0=8+0+ 0+0= 8
八進位制 十進位制
743 = 7* 8^2+4*8^1+3*8^0 = 448+32+3 = 483
十六進位制 十進位制
2AD = 2*16^2+10*16+13 = 512+160+13 = 685
4、下面就是利用C語言程式,來求轉化:
以十六進位制轉化為十進位制為例:
#include"stdio.h" int N(int n) /*定義一個轉化成十進位制的函式*/ { printf("其十進位制:%d",n); return(n); } void main() { int n; printf("請輸入一個十六進位制數\n"); scanf("%x",&n); N(n); /*呼叫函式N*/
}
你也可以試著編寫一個二進位制轉化為十進位制等等,各個進位制之間都行!