計(jì)算機(jī)運(yùn)行二進(jìn)制代碼后呈現(xiàn)出人可以識(shí)別的非二進(jìn)制形式,是由輸出語(yǔ)句來(lái)完成的。
創(chuàng)新互聯(lián)建站于2013年成立,先為涼城等服務(wù)建站,涼城等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為涼城企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
例如printf( ) 函數(shù),會(huì)將二進(jìn)制值轉(zhuǎn)化為指定的格式字符串進(jìn)行輸出。
c語(yǔ)言編程將十進(jìn)制轉(zhuǎn)化為2進(jìn)制可按手工轉(zhuǎn)換規(guī)則進(jìn)行程序轉(zhuǎn)換。
整數(shù)占四個(gè)字節(jié),每字節(jié)8位,共32位。所以,可以定義一個(gè)32位的數(shù)組來(lái)存儲(chǔ)轉(zhuǎn)換結(jié)果。
循環(huán)將整數(shù)進(jìn)行除2取余數(shù),余數(shù)存儲(chǔ)到數(shù)組中。
當(dāng)整數(shù)整除為0時(shí),結(jié)束循環(huán)
逆序輸出數(shù)組,得到轉(zhuǎn)換結(jié)果
參考代碼:
#include stdio.h
void main()
{
int c[32],i=0,n;
scanf("%d", n) ; //輸入待轉(zhuǎn)換整數(shù)n
do {
c[i++]=n%2;
n/=2;
} while(n!=0) ;
for(i--;i=0;i--)
printf("%d",c[i] );
printf("\n");
}
將二進(jìn)制轉(zhuǎn)成十進(jìn)制,按權(quán)值展開(kāi)求和即可。
可以通過(guò)以下代碼解決:
#include stdio.h
#include stdlib.h
int main()
{
char a[17];
gets(a);
int len,i,sum=0,m,j;
len=strlen(a);
if(len=16)
{
for(i=0;ilen;i++)
{
m=1;
if(a[i]=='1')
{
for(j=1;j=len-i-1;j++)
m*=2;
sum+=m;
}
}
printf("%d",sum);
}
return 0;
}
擴(kuò)展資料:
我們常用的進(jìn)制包括:二進(jìn)制、八進(jìn)制、十進(jìn)制與十六進(jìn)制,它們之間區(qū)別在于數(shù)運(yùn)算時(shí)是逢幾進(jìn)一位。比如二進(jìn)制是逢2進(jìn)一位,十進(jìn)制也就是我們常用的0-9是逢10進(jìn)一位。
十進(jìn)制轉(zhuǎn)二進(jìn)制:十進(jìn)制數(shù)除2取余法,即十進(jìn)制數(shù)除2,余數(shù)為權(quán)位上的數(shù),得到的商值繼續(xù)除2,依此步驟繼續(xù)向下運(yùn)算直到商為0為止。
八進(jìn)制轉(zhuǎn)二進(jìn)制:八進(jìn)制數(shù)通過(guò)除2取余法,得到二進(jìn)制數(shù),對(duì)每個(gè)八進(jìn)制為3個(gè)二進(jìn)制,不足時(shí)在最左邊補(bǔ)零。
十六進(jìn)制轉(zhuǎn)二進(jìn)制:十六進(jìn)制數(shù)通過(guò)除2取余法,得到二進(jìn)制數(shù),對(duì)每個(gè)十六進(jìn)制為4個(gè)二進(jìn)制,不足時(shí)在最左邊補(bǔ)零。
負(fù)數(shù)的進(jìn)制轉(zhuǎn)換稍微有些不同。
先把負(fù)數(shù)寫(xiě)為其補(bǔ)碼形式(在此不議),然后再根據(jù)二進(jìn)制轉(zhuǎn)換其它進(jìn)制的方法進(jìn)行。
例:要求把-9轉(zhuǎn)換為八進(jìn)制形式。則有:
-9的補(bǔ)碼為1111 1111 1111 0111。從后往前三位一劃,不足三位的加0
111----7
110----6
111----7
111----7
111----7
001----1
然后我們將結(jié)果按從下往上的順序書(shū)寫(xiě)就是:177767,那么177767就是十進(jìn)制數(shù)-9的八進(jìn)制形式。
其實(shí)轉(zhuǎn)化成任意進(jìn)制都是一樣的。
參考資料:
二進(jìn)制——百度百科
十進(jìn)制——百度百科
C語(yǔ)言中常用的有十進(jìn)制、二進(jìn)制、八進(jìn)制(用0表示)、十六進(jìn)制(用0x表示)。
十進(jìn)制轉(zhuǎn)二進(jìn)制:
十進(jìn)制轉(zhuǎn)二進(jìn)制采取除于2取余的方式。
將十進(jìn)制數(shù)除于2得到商和余數(shù),
將商繼續(xù)除于2一直到商為0,
將得到的余數(shù)倒敘排列就是轉(zhuǎn)換為二進(jìn)制的結(jié)果
二進(jìn)制轉(zhuǎn)十進(jìn)制:
從右向左用二進(jìn)制位上的每一個(gè)數(shù)乘以2的相應(yīng)次方
如二進(jìn)制1010轉(zhuǎn)換為十進(jìn)制:
1010 = 0*(2的0次方)+1*(2的1次方)+0*(2的2次方)+1*(2的3次方) = 2 + 8 = 10
八進(jìn)制轉(zhuǎn)換為二進(jìn)制
將二進(jìn)制數(shù)自右向左每三位分為一段(若不足三位用0補(bǔ)齊),
然后將二進(jìn)制的每三位轉(zhuǎn)換為一位八進(jìn)制數(shù)
如將二進(jìn)制數(shù)0101010轉(zhuǎn)換為八進(jìn)制:
0 101 010不夠三位的補(bǔ)0得到
000 101 010 = 052 = 0052(八進(jìn)制用0表示)
十六進(jìn)制轉(zhuǎn)換為二進(jìn)制
將二進(jìn)制數(shù)自右向左每四位分為一段(若不足三位用0補(bǔ)齊),
然后將二進(jìn)制的每4位轉(zhuǎn)換為一位十六進(jìn)制數(shù)
如將二進(jìn)制數(shù)0101100轉(zhuǎn)換為十六進(jìn)制:
010 1100不夠三位的補(bǔ)0得到
0010 1100 = 2C= 0x2C(十六進(jìn)制用0x表示)