當前位置:首頁 » 服務存儲 » 十進制轉二進制存儲過程程序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

十進制轉二進制存儲過程程序

發布時間: 2022-06-09 23:26:08

① 十進制轉換成二進制步驟

第一種方法:短除法

例如:將123 轉化為二進制

短除法轉二進制要求對2倒取余,因此轉化為結果為:111011

第二種方法:冪方和

十進制數按照冪方和轉化十進制過程如下:

123 = 1*10^2 + 2*10^1 + 3*10^0

= 100 + 20 + 3

= 123


二進制與十進制類似,轉化十進制過程如下:

1001110 = 1*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 1*2^1 + 0*2^0

= 64 + 0 + 0 + 8 + 4 + 2 + 0

= 78


將上述二進制倒過來就是十進制轉二進制的方法了!

78 = 64 + 14

= 64 + 8 + 6

= 64 + 8 + 4 + 2

= 2^6 + 2^3 + 2^2 + 2^1

= 1001110


將78每次都拆出最接近的2的次方項,直到完全拆完為止,出現的次方項寫為1,沒有出現的寫為0,即為十進制轉二進制的過程,此方法需要注意掌握2的次方項以及快速心算的能力。

② 十進制轉二進製程序

比如10進制的15轉換2進制:
用15除以2,商為7,余數為1,
再用7除以2,商為3,余數為1,
再用3除以2,商為1,余數為1,
再用1除以2,商為0,余數為1,
最後吧余數倒過來排列就為二進制的1111(即商為0時的1,商為1時的1,商為3時的1,商為7時的1)
二進制轉十進制
以二進制的1111轉十進制為例:
把二進制的1111看成是十進制的1111即1*10^3
1*10^2
1*10^1
1
然後把10變成2,即1*2^3
1*2^2
1*2^1
1=15

③ 單片機十進制轉二進制的程序

#include<stdio.h>
#define MAX 32
int main(void)
{
int i=0,n,a[MAX];
printf("請輸入一個十進制整數:\n");
scanf("%d",&n);
while (n>0) //循環過程的始終,判斷n是否能被2除盡
{
a[i] = n%2; //用數組存儲每次除以2之後的余數,即斷定奇偶性,對應二進制位上數值
i = i+1;
n = n/2;
}
printf("十進制整數轉換為二進制數是:\n");
for(; i > 0; i--)
printf("%d",a[i-1]);
printf("\n");
return 0;
}

④ 請用一個很簡單的c語言程序:十進制轉換為二進制。

#include"stdio.h"

intmain()

{

intn;

inti=0,j;

charstr[100]={0};

charoutput[100]={0};

printf("請輸入一個整數:");

scanf("%d",&n);

while(n)

{

str[i]=n%2+'0';

n=n/2;

i++;

}

for(j=0;j<i;j++)

output[j]=str[i-1-j];

printf("該整數的二進製表示為:%s ",output);

}

⑤ C語言十進制轉二進制,程序和流程圖,最好有注釋,謝了!

你趕上好運了,哈哈,我剛也做這個題,剛做好!求採納哦

#include<stdio.h>
#include<stdlib.h>
#define max 100

typedef struct
{
int a[max];
int top;
} sqstack;

void initstack (sqstack *&s)
{
s=(sqstack *)malloc(sizeof(sqstack));
s->top=-1;
}

bool push(sqstack *&s,int e)
{
if(s->top==max-1)
return false;
s->top++;
s->a[s->top]=e;
return true;


}

bool pop(sqstack *&s,int &e)
{
if(s->top== -1)
return false;
e=s->a[s->top];
s->top--;
return true;
}

bool stackemply(sqstack *s)
{
return(s->top==-1);
}


int main()
{
int n,m,e;
sqstack *s;
initstack (s);
printf("輸入一個數:");
scanf("%d",&n);
while(n)
{
m=n%2;
push(s,m);
n=n/2;
}
printf("轉化二進制為:");
while(!stackemply(s))
{
pop(s,e);
printf("%d",e);
}
return 0;
}

⑥ 十進制轉二進制 c語言程序

#include<stdio.h>
#include<stdlib.h>
int
getlen(int
n)
{
if(n==0||n==1)
return
1;
else
return
getlen(n/2)+1;
}
void
main()
{
int
n,t;
int
a
[100];
int
i;
printf("請輸入一個十進制數:\n");
scanf("%d",&n);
t=getlen(n)-1;
for(i=0;i<=t;i++){
a[i]=n%2;
n=n/2;}
printf("對應的二進制數:\n");
for(i--;i>=0;i--)
printf("%ld",a[i]);
system("pause");
}
//修改如上