注册 登录
编程论坛 汇编论坛

一个简单的函数

admin_xyz 发布于 2012-09-03 22:07, 867 次点击
程序代码:
void  change_bin (int integer, double fraction)

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

    int  count = 0;
    int  i;

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

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

            count++;

       }

    while (count-- != 0)
        printf ("%d ", *bin--);


}



[ 本帖最后由 admin_xyz 于 2012-9-3 23:15 编辑 ]
13 回复
#2
admin_xyz2012-09-03 22:17
靠。。。问错地方了,版主方便删下帖吗?
#3
有容就大2012-09-03 22:19
我的直觉是把 while (integer / 2 != 0 || integer == 1)换成while (integer)

#4
admin_xyz2012-09-03 22:38
嘿嘿。。。已改
#5
pangding2012-09-03 23:12
有分接,发哪都行。
#6
admin_xyz2012-09-03 23:15
好歹把问题解决了嘛。。。
#7
pangding2012-09-03 23:15
你说 用debuger  中memory查看bin,什么也没有。是指在运行的过程中,那块内存的内容不发生改变吗?
#8
admin_xyz2012-09-03 23:16
是的
#9
pangding2012-09-03 23:17
那不清楚,我现在手头没有 vs。
#10
admin_xyz2012-09-03 23:25
程序代码:
void  change_bin (int integer, double fraction)

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

    int  count = 0;
    int  i = 0;

    while (integer)        //1/2=0,1%2 = 1
        {

            *++bin = integer % 2;               //改成这样两个问题都解决了,但不知为什么。debuging...
            integer /= 2;

            count++;

       }

    while (i++ != count)
        printf ("%d ", *bin--);


}
#11
有容就大2012-09-03 23:28
关注LZ签名  放松点~~
#12
zklhp2012-09-04 08:20
我没权限了 这贴转不动。。
#13
pangding2012-09-04 10:54
以下是引用zklhp在2012-9-4 08:20:10的发言:

我没权限了 这贴转不动。。

为什么?我也移不了帖子唉。
#14
admin_xyz2012-09-04 19:33
这贴有古怪?
1