| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 341 人关注过本帖
标题:刚学习C求解2个菜问题?
取消只看楼主 加入收藏
stukk
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-21
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
刚学习C求解2个菜问题?
1. 整形变量int a与short b在内存中都是占用两个字节,取值范围都是-32768~32767,默认都是带符号整数(正整数)那么它们有什么区别呢?即什么情况下用类型符int什么情况下用short?
main()
{
   int a;
   short b;

   a=32767;
   b=32767;
   printf("a=%d\nb=%d,"a,b);
}

+++++++++++++++++++++++++++++++++++++++++++++
2. 下面代码中变量a, b, c,既然定义了是无符号整数(人为的赋予负值)为何输出全为负数?不能强制转换为正吗?
main()
{
   unsigned a;
   unsigned short b;
   unsigned long c;
   a=-32767;
   b=-32767;
   c=-882767;
   printf("a=%d"\n,a);
   printf("a=%d"\n,b);
   printf("a=%ld\n",c);
}

刚学习C弄的头昏脑胀的。。。有些基础的实在弄不明白~~

[ 本帖最后由 stukk 于 2010-4-21 10:44 编辑 ]
搜索更多相关主题的帖子: 学习 正整数 
2010-04-21 10:30
stukk
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-21
收藏
得分:0 
谢谢楼上两位。。明白了,也就是说,不管是数字,字符,字符串在计算机中是以ASCII对应的编码(二进制)形式存在的(<=127),8bit=1byte,最高位为符号位。负数是以补码形式存在的
最高位总为1.整数和字符最高为0。
2010-04-21 12:55
快速回复:刚学习C求解2个菜问题?
数据加载中...
 
   



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

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