1樓:匿名使用者
a進製數x在b進製下數值為y
x每位a進製數字分別在b進製下表示為b0,b1,b2,b3,...(整數部分),b(-1),b(-2),b(-3),...
a進製數10在b進製下值為p
公式為y=b0*p^0+b1*p^1+b2*p^2+b3*p^3+...+b(-1)*p^(-1)+b(-2)*p^(-2)+b(-3)*p^(-3)+...
二進位制八進位制十六進製制之間相互轉換的方法
由於8,16是與2是指數關係,轉換方法簡單一些以小數點為界,二進位制每3個數字一組表示乙個八進位制數,二進位制每4個數字一組表示乙個十六進製制數。這樣就簡化了公式:首先分組按照公式轉換,再把得到的數排列在一起。
如:101110010101.101(二)=1011 1001 0101.1010(二)=b95.a(十六)
7af.8e(十六)
=0111 1010 1111.1000 1110(二)=011 110 101 111.100 011 100(二)=3657.434(八)
十進位制和二進位制八進位制十六進製制則可以採用
除2/8/16取餘法(不另說明)
還可用公式
例子198
=128+64+4+2
=10000000(二)
+ 1000000(二)
+ 100(二)
+ 10(二)
=11000110(二)
2樓:匿名使用者
乙個八進位制等於三位二進位制、乙個十六進製制等於四位二進位制。直接數字數!
用vc語言程式設計實現2-16進製制內任意進製之間的轉換。謝謝大神。
3樓:匿名使用者
||#include
#include
#include
int readnumber(char* input, int base)
if (base < 2 || base > 16)
int number = 0;
for (int i = 0; i < inputlength; i++)
else if (c >= 'a' && c <= 'f')
else if (c >= 'a' && c <= 'f')
else
if (d >= base)
number *= base;
number += d;
if (number < 0)
}return number;
}char* writenumber(int number, int base)
char buffer[128];
int index = 127;
buffer[index--] = 0;
doint d = number % base;
number /= base;
if (d <= 9)
else
} while (number != 0);
index++;
int outputlength = strlen(buffer + index);
char* output = (char*) malloc(outputlength + 1);
memcpy(output, buffer + index, outputlength + 1);
return output;
}void main()
else
else
}rewind(stdin);
printf("\n按回車鍵退出\n");
getchar();}
十進位制與其他進製相互轉換方法,十進位制與其他進製相互轉換方法?
1.十進位制轉換為二進位制 除二取餘法 89 10 1011001 2 89 2 44 餘 1 44 2 22 餘 0 22 2 11 餘 0 11 2 5 餘 1 5 2 4 餘 1 4 2 2 餘 0 2 2 1 2.十進位制轉換為八進位制 假設十進位制數為1000,則八進位制數字1750,過程...
10進製的數如何直接轉換成8進製的數
十轉八進位制。如轉為八進位制。整數部分 然後我們將餘數按從下往上的順序書寫就是 31,那麼這個31就是十進位制25的八進位制形式。小數部分 然後我們將整數部分按從上往下的順序書寫就是 5,那麼這個就是十進位制的八進位制形式。所以 十 八 八。十。用十進位制的數值除以8,餘數為八進位制的個位。例 十進...
80座標和54座標相互轉換的引數
貌似沒有什麼辦法,必須有同乙個點的兩套座標系的座標,而且要有3個才能算出準確的7引數。北京54的長半徑是6378245,偏率是1 298.3。西安80的長半徑是6378140,偏率是1 298.257。他們兩個座標系 的轉回換要有兩個以上公共點答才可以計算出轉換引數。可以用三引數,四引數,要精確的話...