c語言二進制十進制
1. 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
*/
2. 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;
}
3. c語言怎麼將2進制轉化為10進制
#include<stdio.h>
intSum(inta[]);
intpower(intb);
intmain()
{
intarray[8],i;
printf("輸入一個8位二進制數:");
for(i=0;i<8;i++)
{
scanf("%1d",&array[i]);
}
printf("轉換為十進制數後是:%d ",Sum(array));
return0;
}
intSum(inta[])
{
intn,i,sum=0,term;//n為指數,term為每一項的值,如1*(2*2),sum為總和
for(i=0,n=7;i<8;i++,n--)
if(n>=0)
{term=a[i]*power(n);
sum=sum+term;
}
returnsum;
}
intpower(intb)
{
inti=2,j=1;
if(b==0)
i=1;
for(;j<b;j++)
i=2*i;
returni;
}
4. 用C語言編寫二進制轉換十進制的程序。
1、為了完成進制的轉換,在主函數中聲明了個函數Sum,主要用於將二進制的每一位轉換為十進制後的數相加,返回值就是相加後的和。另外定義了一個數組array[8],用於存放輸入的八位二進制數。
5. 編程 c語言二進制怎麼轉化為十進制
int fun(int j);
void main()
{
int i;
char Binary[100];
cout << "請輸入要轉化為10進制的2進制數" << endl;
cin >> Binary;
char * p = Binary;
i = strlen(Binary) - 1;
int Dec = 0;
int j = 0;
while (i >= 0)
{
Dec = Dec + (*(p + i) - 48 )* fun(j);
j++;
i--;
}
cout << Dec << endl;
}
int fun(int j)
{
int JI = 1;
for(int i = 0; i < j; i++)
{
JI = JI * 2;
}
return JI;
}
這個是比較簡單易懂的函數,看看吧。當然可以用另一種方法,就是新手會比較容易暈。
6. C語言 二進制轉換成十進制
#include<stdio.h>
#include<string.h>
int main()
{
int n,a[20],num=0,i,j;
scanf("%d",&n);
printf("輸入二進制:\n");
for(i=1;i<=n;i++)
{
scanf("%s",a);
for(j=strlen(a)-1; j>=0; j--)
{
num*=2;
num+=a[i]-'0';
}
printf("%d\n", num);
}
return 0;
}