當前位置:首頁 » 編程語言 » 二進制轉十進制c語言

二進制轉十進制c語言

發布時間: 2023-09-08 07:53:31

c語言 二進制數轉化為十進制數

思路:十進制整數轉換為二進制整數採用"除2取余,逆序排列"法。即用2整除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為0時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。

參考代碼:

#include"stdio.h"
voidfun(intn){
if(n==0)return;
fun(n/2);
printf("%d",n%2);
}
intmain(){
intn;
scanf("%d",&n);
fun(n);
return0;
}
/*
運行結果:例如求10的2進制
10
1010
*/

② C語言 將一個二進制數,轉換為對應的十進制數。

#include<stdio.h>
#include<math.h>
int main()
{
int a[10] = {1,0,0,1,0,1,1,0,0,0};//這里只是預先寫好的二進制數,可以自行改為主動輸入,主要體現過程
int i = 0;
int sum = 0;
for(i = 9;i>=0;i--)//9為數組最後一位
{
sum = sum + a[i];pow(2,abs(i-9));//i- 9 的絕對值判定乘以2 的幾次方
}
printf("%d\n",sum);
return 0;
}

③ C語言 怎樣將二進制數轉換成十進制,又怎樣將十進制數轉換成二進制數輸出

將二進制數轉換成十進制,一般是從字元串轉換成一個整數,按位值乘以權值相累加得到結果。
如:1010=1*2^3+0*2^2+1*2+0
=((((1*2)+0)*2)+1)*2+0
將十進制數轉換成二進制數,採用的原理就是輾轉除2,逆向輸出余數。(windows系統下的itoa函數也是一個不錯的選擇,但DIY更有意義)
實現方法:
#include <stdio.h>
void swap( char *a, char *b )
{
char t=*a;
*a=*b;
*b=t;
}
char *reverse(char *s,int len)
{
char *b=s, *e=s+len-1;
while( b<e )
{
swap(b++,e--);
}
return s;
}
char *dec2bin(n)
{
static char str[33];
int i=0;
do {
str[i++]=n%2+'0';
n/=2;
}while( n );
str[i]=0;
return reverse(str,i);
}
int bin2dec(char *s)
{
int i,n=0;
for( i=0;s[i];i++ )
n=n*2+s[i]-'0';
return n;
}
void main()
{
int n=100;
char *p;
p=dec2bin(n);
printf("%d(D)=%s(B)\n", n, p );
n=bin2dec(p);
printf("%s(B)=%d(D)\n", p, n );
}運行結果:
100(D)=1100100(B)
1100100(B)=100(D)

④ 如何用c語言編寫二進制和十進制之間的轉換

二進制轉十進制
n
為輸入的二進制數,d用來處理該數。
k為標志位,當k為1時表示輸入的數有問題,需要重新輸入。
i為每次分解的個位數;j為二進制的權值;m為累計的十進制和;p為輸入的數的位數,超過10時,該數越界,需要重新輸入,定k=1。
程序如下:
#include
<conio.h>
main()
{
long
int
n,d;
int
k,i,j,m,p;
do
{
k=0;
m=0;j=1;i=0;p=0;
printf("\ninput
an
number
only
includes
0
or
1:");
scanf("%ld",&n);
if(n<0)
k=1;
d=n;
while(d)
{
i=d%10;p++;
if(i>1
||
p>10)
{k=1;break;}
m+=i*j;
j=j*2;
d/=10;
}
}
while(k==1
||
m==0);
printf("\n
the
number
is
%d\n",m);
getch();
}

⑤ c語言把二進制數轉換成十進制數的程序怎麼寫。

需要准備的材慎洞料分別有:電腦、C語言編譯器。亮孝漏

1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。

⑥ 用C語言編寫二進制轉換十進制的程序。

1、為了完成進制的轉換,在主函數中聲明了個函數Sum,主要用於將二進制的每一位轉換為十進制後的數相加,返回值就是相加後的和。另外定義了一個數組array[8],用於存放輸入的八位二進制數。

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:432
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:743
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:146
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:235
java駝峰 發布:2025-02-02 09:13:26 瀏覽:651
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726