| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 529 人关注过本帖
标题:实在想不明白了,请求高手帮忙!!多谢!!
取消只看楼主 加入收藏
philip_yin
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2005-10-6
收藏
 问题点数:0 回复次数:1 
实在想不明白了,请求高手帮忙!!多谢!!

使用工具:visual c++ 6.0 程序目的:输入一个十进制整数,使得能够输出对应的二进制数。 思想:把二进制数按照数组的元素形式输出出来(比如输入12,那么二进制数应该是1100,则创建一个数组,此数组有四个元素)。输入这个数后,通过取余和取模运算,计算出需要多大的数组存储二进制数的位。 以下是程序: #include<stdio.h> #include<stdlib.h>

int main() { int i=0,j=0,decimal,fake_decimal; //i的目的是创建动态数组用,j的目的是转换算法用 int *binary; printf("请输入一个十进制数:"); scanf("%d",&decimal); fake_decimal = decimal; //给二进制数分配个数组 while((fake_decimal/2) != 0) { fake_decimal /= 2; i++; } i++; binary = (int *) malloc(i*sizeof(int)); //开始十进制转化为二进制算法 while((decimal/2) != 0) { if((decimal%2) == 0) *(binary+j) = 0; if((decimal%2) == 1) *(binary+j) = 1; j++; decimal /= 2; } j++; *(binary+j) = 1;

//输出二进制数 while(j >= 0) { printf("%d",*(binary+j)); j--; } printf("\n");

return 0; } 假如输入12,则输出结果是1-842150451100(后四位的1100应该是输出啊!!)假如输入4,则输出结果是1-84215045100(后三位的100应该是输出啊!!) 为什么会出现这样的情况呢??怎么也想不明白,所以向众高手求救,多谢了!

[此贴子已经被作者于2005-10-11 16:53:00编辑过]

搜索更多相关主题的帖子: 请求 
2005-10-11 16:50
philip_yin
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2005-10-6
收藏
得分:0 
自己看明白了,第二个循环后面多了个j++,呵呵

2005-10-12 13:43
快速回复:实在想不明白了,请求高手帮忙!!多谢!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017171 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved