十进制转二进制怎么算_二进制计算公式

十进制转二进制怎么算_二进制计算公式,第1张

十进制转二进制怎么算_二进制计算公式 十进制转二进制十进制转二进制使用的是除以2取余数的方法,下面以十进制数11为例11 ÷ 2 = 5 余数15 ÷ 2 = 2 余数12 ÷ 2 = 1 余数01 ÷ 2 = 0 余数1首次得到的余数放在最右,因此转换为二进制数1011C语言十进制转二进制分析(1)使用数组存储二进制,循环数组输出结果(2)使用除2取余,使用%。


#include<stdio.h>int main(void){ int m,n,i,j; int a[16] = {0}; printf("请输入一个整数:"); scanf("%d",&m); for(n=0;n<15;n++){ i = m % 2; j = m / 2; m = j; a[n] = i; } for(n=15;n>=0;n--){ printf("%d",a[n]); if(n%4 == 0){ printf(" "); } } return 0;}程序分析(1)int a[16] = {0},定义了数组a,初始值设定为0。


(2)第一个for循环for(n=0;n<15;n++),循环范围0-14,设定了数a的初值为0,默认最高位为0,转换后的二进制数放入数组剩下的元素。


(3)第二个for循环for(n=15;n>=0;n–),循环范围0-15,输出所有的数值。


运行结果运行分析以输入数值11为例进行分析,输入11,m=11,进入第一个for循环(1)n=0,i=m%2=11%2=1,j=m/2=11/2=5,m=j=5,a[0]=1(2)n=1,i=m%2=5%2=1,j=m/2=5/2=2,m=j=2,a[1]=1(3)n=2,i=m%2=2%2=0,j=m/2=2/2=1,m=j=1,a[2]=0(4)n=3,i=m%2=1%2=1,j=m/2=1/2=0,m=j=0,a[3]=1此时如果输出数组,结果:1101 0000 0000 0000进入第二个for循环,使用除2取余法,首次得到的余数需要放在最右,因此需要逆序输出数组,每隔四位输出一个空格。


结果:0000 0000 0000 1011总结(1)本例中使用数组存储二进制位数,但数组大小仅为16,数值过大则不能转换。


(2)本例中数组初始化为0,转换后输出最高位为0,转换的仅为正整数,不能转换负数或小数。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/644984.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-17
下一篇 2022-04-17

发表评论

登录后才能评论

评论列表(0条)

保存