十进制转二进制怎么算(二进制计算公式)

   日期:2022-02-24     文章发布:文章发布    网络转载:生活号    
核心提示:十进制转二进制 十进制转二进制使用的是除以2取余数的方法,下面以十进制数11为例 11÷2=5余数1 5÷2=2余数1 2÷2=1余数0 1÷2=0余数1 首次得到的余数放在最右,因此转换为二进制数1011 C语言十进制转二进制 分析 (1)使用数组存储二进制,循环数组输出结果 (2)使用除2取余,使用%。 #include intmain(void){ intm,n...
移动站源标题:http://mip.818114.com/news/item-177221.html

十进制转二进制

十进制转二进制使用的是除以2取余数的方法,下面以十进制数11为例

11 ÷ 2 = 5 余数1

5 ÷ 2 = 2 余数1

2 ÷ 2 = 1 余数0

1 ÷ 2 = 0 余数1

首次得到的余数放在最右,因此转换为二进制数1011

C语言十进制转二进制

分析

(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,转换的仅为正整数,不能转换负数或小数。

免责声明:本网部分文章和信息来源于互联网,本网转载出于传递更多信息和学习之目的,并不意味着赞同其观点或证实其内容的真实性,如有侵权请通知我们删除!(留言删除
 
 
更多>同类行业

同类新闻
最新资讯
最新发布
最受欢迎
网站首页  |  黄页  |  联系方式  |  信息  |  版权隐私  |  网站地图  |  API推送  |  网站留言  |  RSS订阅  |  违规举报  |  陇ICP备22000095号