



關(guān)鍵字


基本數(shù)據(jù)類型


進(jìn)制

進(jìn)制:進(jìn)制是一種計(jì)數(shù)方法,我們生活中最常使用的是十進(jìn)制數(shù),也就是逢十進(jìn)一,而在計(jì)算機(jī)中數(shù)據(jù)存儲(chǔ)的方式采用的是二進(jìn)制數(shù),也就是逢二進(jìn)一,常見的進(jìn)制還有八進(jìn)制和十六進(jìn)制。
1.進(jìn)制的轉(zhuǎn)換
進(jìn)制之間的轉(zhuǎn)換,最常使用到的是十進(jìn)制轉(zhuǎn)換為其他進(jìn)制,其他進(jìn)制轉(zhuǎn)換為十進(jìn)制,而十進(jìn)制也可以作為中介,用作于其他進(jìn)制間的轉(zhuǎn)換,現(xiàn)在我們以最常用的十進(jìn)制轉(zhuǎn)二進(jìn)制和二進(jìn)制轉(zhuǎn)十進(jìn)制為例進(jìn)行講解,其他進(jìn)制轉(zhuǎn)換也雷同:
(1)十進(jìn)制轉(zhuǎn)二進(jìn)制
十進(jìn)制數(shù):35
-
方法:將十進(jìn)制數(shù)連續(xù)除以2(幾進(jìn)制就除以幾),記錄每次除以2后的余數(shù),最后將余數(shù)倒過來寫,如不足8位在最右側(cè)補(bǔ)上0,這就是最終的二進(jìn)制數(shù)。
image 因?yàn)槎M(jìn)制習(xí)慣用8的次方數(shù)進(jìn)行表示,所以需要補(bǔ)0,最終十進(jìn)制35的二進(jìn)制數(shù)就是0010 0011。
(2)二進(jìn)制轉(zhuǎn)十進(jìn)制數(shù)
- 二進(jìn)制數(shù):1000 1010
- 方法:從右往左的給二進(jìn)制的每一位從0開始標(biāo)上序號(hào),將每一位的值乘以2(幾進(jìn)制就乘以幾)的序號(hào)次方,并將每一位算出的結(jié)果加起來得到的數(shù)就是該二進(jìn)制數(shù)的十進(jìn)制表示。
image

2. java代碼實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換

(1)十進(jìn)制轉(zhuǎn)二進(jìn)制
public static void TentoTwo(long n) {
long res = 0;
int i = 1;
while(n>0) {
res += n % 2 * i;
n /= 2;
i *= 10;
}
System.out.println(res);
}
(2) 二進(jìn)制轉(zhuǎn)十進(jìn)制數(shù)
//二進(jìn)制轉(zhuǎn)十進(jìn)制數(shù)
public static void TwotoTen(long n) {
long res = 0;
int i =0;
while(n>0) {
res += n%10 * mi(2,i);
n /= 10;
i++;
}
System.out.println(res);
}
//實(shí)現(xiàn)某數(shù)的冪次方,a的b次方
public static int mi(int a, int b) {
if(b == 0 ) {
return 1;
}else if(b == 1) {
return a;
}else {
int c = a;
for(int i = 1; i<b; i++) {
a *= c;
}
}
return a;
}



本文轉(zhuǎn)至微信公眾號(hào):【平兄聊Java】

