| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 633 人关注过本帖
标题:C 小问题 请求解答
取消只看楼主 加入收藏
cquwt
Rank: 1
等 级:新手上路
帖 子:41
专家分:2
注 册:2013-12-24
结帖率:69.23%
收藏
已结贴  问题点数:2 回复次数:4 
C 小问题 请求解答
程序代码:
#include<stdio.h>
int main(){
    unsigned i=4294967296,m=4294967295;
    int k=4294967296,l=4294967295;
    printf("%d,%d,%d,%d,%d\n",i,i-1,i-2,sizeof(int),m);
    printf("%d,%d,%d,%d,%d\n",k,k-1,k-2,sizeof(unsigned),l);
}


用的是devC++,请问结果为什么是这个呢?
图片附件: 游客没有浏览图片的权限,请 登录注册
2014-08-29 17:50
cquwt
Rank: 1
等 级:新手上路
帖 子:41
专家分:2
注 册:2013-12-24
收藏
得分:0 
回复 2 楼 ditg
其实最主要是想问为什么输出的不是原数,而是负数或0呢
另外:4294967296是2的32次方
2014-08-29 18:05
cquwt
Rank: 1
等 级:新手上路
帖 子:41
专家分:2
注 册:2013-12-24
收藏
得分:0 
回复 4 楼 ditg
可以说的详细直白些吗,,,
2014-08-29 18:13
cquwt
Rank: 1
等 级:新手上路
帖 子:41
专家分:2
注 册:2013-12-24
收藏
得分:0 
回复 6 楼 ditg
我学的还不深 不懂你说的和这个有什么联系
答案是这样说的:
32位无符号二进制数能表示的最大十进制数是 4294967295.把它变成对应的二进制数再加1,产生数据溢出,而后32位全为0.so结果为0.
可是这是什么原理呢,,我是哪个地方没理解到位呢?
2014-08-29 18:27
cquwt
Rank: 1
等 级:新手上路
帖 子:41
专家分:2
注 册:2013-12-24
收藏
得分:0 
回复 9 楼 waiwai_bbs
unsigned不是无符号吗,怎么包括负数呢?
除了unsigned 还有int呢,int是包括负数的,怎么解释?
这块说的是有关补码吗???
2014-08-29 21:51
快速回复:C 小问题 请求解答
数据加载中...
 
   



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

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