計算機運行二進制代碼后呈現(xiàn)出人可以識別的非二進制形式,是由輸出語句來完成的。

創(chuàng)新互聯(lián)建站于2013年成立,先為涼城等服務(wù)建站,涼城等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為涼城企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
例如printf( ) 函數(shù),會將二進制值轉(zhuǎn)化為指定的格式字符串進行輸出。
c語言編程將十進制轉(zhuǎn)化為2進制可按手工轉(zhuǎn)換規(guī)則進行程序轉(zhuǎn)換。
整數(shù)占四個字節(jié),每字節(jié)8位,共32位。所以,可以定義一個32位的數(shù)組來存儲轉(zhuǎn)換結(jié)果。
循環(huán)將整數(shù)進行除2取余數(shù),余數(shù)存儲到數(shù)組中。
當(dāng)整數(shù)整除為0時,結(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");
}
將二進制轉(zhuǎn)成十進制,按權(quán)值展開求和即可。
可以通過以下代碼解決:
#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;
}
擴展資料:
我們常用的進制包括:二進制、八進制、十進制與十六進制,它們之間區(qū)別在于數(shù)運算時是逢幾進一位。比如二進制是逢2進一位,十進制也就是我們常用的0-9是逢10進一位。
十進制轉(zhuǎn)二進制:十進制數(shù)除2取余法,即十進制數(shù)除2,余數(shù)為權(quán)位上的數(shù),得到的商值繼續(xù)除2,依此步驟繼續(xù)向下運算直到商為0為止。
八進制轉(zhuǎn)二進制:八進制數(shù)通過除2取余法,得到二進制數(shù),對每個八進制為3個二進制,不足時在最左邊補零。
十六進制轉(zhuǎn)二進制:十六進制數(shù)通過除2取余法,得到二進制數(shù),對每個十六進制為4個二進制,不足時在最左邊補零。
負數(shù)的進制轉(zhuǎn)換稍微有些不同。
先把負數(shù)寫為其補碼形式(在此不議),然后再根據(jù)二進制轉(zhuǎn)換其它進制的方法進行。
例:要求把-9轉(zhuǎn)換為八進制形式。則有:
-9的補碼為1111 1111 1111 0111。從后往前三位一劃,不足三位的加0
111----7
110----6
111----7
111----7
111----7
001----1
然后我們將結(jié)果按從下往上的順序書寫就是:177767,那么177767就是十進制數(shù)-9的八進制形式。
其實轉(zhuǎn)化成任意進制都是一樣的。
參考資料:
二進制——百度百科
十進制——百度百科
C語言中常用的有十進制、二進制、八進制(用0表示)、十六進制(用0x表示)。
十進制轉(zhuǎn)二進制:
十進制轉(zhuǎn)二進制采取除于2取余的方式。
將十進制數(shù)除于2得到商和余數(shù),
將商繼續(xù)除于2一直到商為0,
將得到的余數(shù)倒敘排列就是轉(zhuǎn)換為二進制的結(jié)果
二進制轉(zhuǎn)十進制:
從右向左用二進制位上的每一個數(shù)乘以2的相應(yīng)次方
如二進制1010轉(zhuǎn)換為十進制:
1010 = 0*(2的0次方)+1*(2的1次方)+0*(2的2次方)+1*(2的3次方) = 2 + 8 = 10
八進制轉(zhuǎn)換為二進制
將二進制數(shù)自右向左每三位分為一段(若不足三位用0補齊),
然后將二進制的每三位轉(zhuǎn)換為一位八進制數(shù)
如將二進制數(shù)0101010轉(zhuǎn)換為八進制:
0 101 010不夠三位的補0得到
000 101 010 = 052 = 0052(八進制用0表示)
十六進制轉(zhuǎn)換為二進制
將二進制數(shù)自右向左每四位分為一段(若不足三位用0補齊),
然后將二進制的每4位轉(zhuǎn)換為一位十六進制數(shù)
如將二進制數(shù)0101100轉(zhuǎn)換為十六進制:
010 1100不夠三位的補0得到
0010 1100 = 2C= 0x2C(十六進制用0x表示)
                新聞名稱:c語言二進制函數(shù)轉(zhuǎn)換 c語言轉(zhuǎn)化為二進制函數(shù)
                
                鏈接地址:http://www.chinadenli.net/article46/doppceg.html
            
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、網(wǎng)站制作、商城網(wǎng)站、ChatGPT、做網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
