| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 468 人关注过本帖
标题:一个简单的函数
只看楼主 加入收藏
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
结帖率:97.3%
收藏
已结贴  问题点数:10 回复次数:5 
一个简单的函数
程序代码:
void  change_bin (int integer, double fraction)



{

    int  *bin = (int *)calloc(N, sizeof(int));



    int  count = 0;

    int  i;



    while (integer / 2 != 0 || integer == 1)        //把10进制转化2进制,输入127后显示  “0111111”,应该显示”1111111“,我指针用错了么。。。

        {



            *bin++ = integer % 2;                        //还有个问题,我用debuger  中memory查看bin,什么也没有。。。存储的数据去哪了。。。

            integer /= 2;



            count++;



       }



    while (count-- != 0)

        printf ("%d ", *bin--);





}

搜索更多相关主题的帖子: 函数 
2012-09-03 22:18
senpujituan
Rank: 4
等 级:业余侠客
帖 子:91
专家分:203
注 册:2012-6-29
收藏
得分:3 
不知道说的对不对: *bin++ = integer % 2    *跟++是同一级的,右结合。相当于*(bin++),也就是他的第一个元素里面不知道放的什么东西吧,所以假如没有付初值或分配内存,我想第一个元素输出来应该是乱码的。会是0,跟那个分配内存的函数有关。

至于说没有bin里没内容,可能是调试的问题,这个实在不知道。
2012-09-04 19:02
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:3 
以下是引用admin_xyz在2012-9-3 22:18:53的发言:

void  change_bin (int integer, double fraction)
 
 
 
{
 
    int  *bin = (int *)calloc(N, sizeof(int));
 
 
 
    int  count = 0;
 
    int  i;
 
 
 
    while (integer / 2 != 0 || integer == 1)        //把10进制转化2进制,输入127后显示  “0111111”,应该显示”1111111“,我指针用错了么。。。
 
        {
 
 
 
            *bin++ = integer % 2;                        //还有个问题,我用debuger  中memory查看bin,什么也没有。。。存储的数据去哪了。。。
 
            integer /= 2;
 
 
 
            count++;
 
 
 
       }
 
 
 
    while (count-- != 0)
 
        printf ("%d ", *bin--);
 
 
 
 
 
}

你用的啥编辑器啊 代码写的真奇葩 我觉得我打空行就够多的了 你比我还多
2012-09-04 19:06
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
没打那么多回车。。。粘到这就多了。

[ 本帖最后由 admin_xyz 于 2012-9-4 20:20 编辑 ]

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-09-04 19:59
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
一调试就输出0,直接运行会输出正确的。。。这什么毛病。。。

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-09-04 20:19
patchy
Rank: 1
等 级:新手上路
帖 子:1
专家分:3
注 册:2012-9-4
收藏
得分:3 
以下是引用admin_xyz在2012-9-3 22:18:53的发言:

void  change_bin (int integer, double fraction)
 
 
 
{
 
    int  *bin = (int *)calloc(N, sizeof(int));
 
 
 
    int  count = 0;
 
    int  i;
 
 
 
    while (integer / 2 != 0 || integer == 1)        //把10进制转化2进制,输入127后显示  “0111111”,应该显示”1111111“,我指针用错了么。。。
 
        {
 
 
 
            *bin++ = integer % 2;                        //还有个问题,我用debuger  中memory查看bin,什么也没有。。。存储的数据去哪了。。。
 
            integer /= 2;
 
 
 
            count++;
 
 
 
       }
 
 
 
    while (count-- != 0)
 
        printf ("%d ", *bin--);
 
 
 
 
 
}
   
while (count-- != 0)  
        printf ("%d ", *--bin);  // 此处改为前--
2012-09-04 21:53
快速回复:一个简单的函数
数据加载中...
 
   



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

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