如何把十进制转换成二进制(十进制转换成二进制小数)
2023-01-23 canyinms.com 【 字体:大 中 小 】
如何把十进制转换成二进制,十进制转换成二进制小数。小编来告诉你更多相关信息。
十进制转二进制
十进制转二进制使用的是除以2取余数的方法,下面以十进制数11为例
11 ÷ 2 = 5 余数1
5 ÷ 2 = 2 余数1
2 ÷ 2 = 1 余数0
1 ÷ 2 = 0 余数1
首次得到的余数放在最右,因此转换为二进制数1011
C语言十进制转二进制
分析
(1)使用数组存储二进制,循环数组输出结果
(2)使用除2取余,使用%。
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,转换的仅为正整数,不能转换负数或小数。
猜你喜欢
云南省玉溪市2023-03-24 15:26发布大风蓝色预警
福建省漳州市2023-03-24 16:17发布雷电黄色预警
福建省龙岩市2023-03-24 15:48发布雷电黄色预警
广西壮族自治区桂林市2023-03-24 17:35发布雷电黄色预警
甘肃省陇南市2023-03-24 18:00发布道路结冰黄色预警
吉林省松原市2023-03-24 15:55发布森林火险黄色预警
福建省福州市2023-03-24 15:50发布暴雨蓝色预警
广西壮族自治区贺州市2023-03-24 16:34发布雷电黄色预警
广西壮族自治区桂林市2023-03-24 15:48发布雷电黄色预警
江西省赣州市2023-03-24 18:38发布雷电黄色预警
如何自制蛋挞
肉火烧面怎么和面
奶茶几分糖好喝
过桥米线是哪里的?
面霜和乳液的区别
怎么摘隐形眼镜
粉饼和散粉的区别
冷烫和热烫的区别
高品质香水如何鉴别?用三步就可以解决
如何去除黑眼圈