| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1432 人关注过本帖
标题:自己编了一程序,有个地方不是很清楚,请各位帮忙
只看楼主 加入收藏
梦想的翅膀hs
Rank: 1
等 级:新手上路
帖 子:22
专家分:3
注 册:2012-9-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:21 
自己编了一程序,有个地方不是很清楚,请各位帮忙
#include <stdio.h>
main()
{
    int power(int m,int n);
    int x,y,sum;
    printf("请输入底数与指数分别是:\n");
    scanf("%d,%d",&x,&y);
    sum=power(x,y);
    printf("结果sum=%d",sum);
}
int power(int m,int n)
{
    int i,j=1;
    for(i=1;i<=n;i++)
        j=m*j;
    return(j);
}
这个程序是正确的,在VC中,输入:2,50 后,得到的sum=0
我知道是字节的原因,超出范围了
但为什么是等于0?????????
搜索更多相关主题的帖子: power include 
2012-09-02 11:33
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
你从 2 的 0 次方一路算过来看看也许就知道了。
2012-09-02 17:49
幸福的路口
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2012-9-2
收藏
得分:0 
你试试只让他输出5位数看看printf("结果sum=%5d",sum);
2012-09-02 17:50
ldzy
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:64
专家分:339
注 册:2012-7-30
收藏
得分:0 
因为你的底数是2吧,稍微考虑一下二进制的移位和乘以2之间的联系。
2012-09-02 18:22
justNPC
Rank: 5Rank: 5
等 级:职业侠客
帖 子:101
专家分:311
注 册:2012-8-11
收藏
得分:10 
正如四楼所说 我举个例子给你看看 假设int型是16位
1       0000000000000001
2       0000000000000010
4       0000000000000100
8       0000000000001000
16      0000000000010000
32      0000000000100000
....        .....
2^15    1000000000000000
2^16    0000000000000000
明白了?
2012-09-02 19:50
LShang
Rank: 4
来 自:China
等 级:业余侠客
威 望:3
帖 子:183
专家分:258
注 册:2010-12-24
收藏
得分:0 
4楼5楼说的很清楚了
int装不下了,剩下的都是0了,所以按int型读取就是0了。。。

学如逆水行舟,不进则退
士不可以不弘毅,任重而道远
2012-09-02 19:52
菜鸟7号
Rank: 2
等 级:论坛游民
帖 子:21
专家分:17
注 册:2011-8-29
收藏
得分:0 
2的50次方...截断了,只取低32位存,值就像4.5.6 楼所说的那样,自然就是0啦
2012-09-02 21:16
梦想的翅膀hs
Rank: 1
等 级:新手上路
帖 子:22
专家分:3
注 册:2012-9-1
收藏
得分:0 
回复 2楼 pangding
我知道算到一定的数就会出错的,因为超出了赋予值的范围,但为甚是0
2012-09-02 22:30
梦想的翅膀hs
Rank: 1
等 级:新手上路
帖 子:22
专家分:3
注 册:2012-9-1
收藏
得分:0 
回复 5楼 justNPC
哦,有点懂了,这是补码?还是原码?,谢谢啦
2012-09-02 22:35
梦想的翅膀hs
Rank: 1
等 级:新手上路
帖 子:22
专家分:3
注 册:2012-9-1
收藏
得分:0 
回复 6楼 LShang
谢谢
2012-09-02 22:37
快速回复:自己编了一程序,有个地方不是很清楚,请各位帮忙
数据加载中...
 
   



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

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