当前位置:首页 » 服务存储 » 十进制转二进制存储过程程序
扩展阅读
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");
}
//修改如上