标题:关于unsigned int的 问题
取消只看楼主
starzq00123
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2012-7-20
 问题点数:0 回复次数:4 
关于unsigned int的 问题
#include <stdio.h>
main()
{int a,b,c;
unsigned u,d;
a=12;b=-24;u=10;c=a+u;d=b+u;

printf("a+u=%d,b+u=%d\n",c,d);
}

我定义的d是无符号的整型变量,算出来的d=b+u=-14,但因为d是无符号的整型变量,不应该显示的是14吗?
为什么我的执行结果却是b+u=-14.  无符号的变量能和有符号的变量做运算么? 结果若定义位unsigned的就是无论正负都是正的么?
搜索更多相关主题的帖子: include 
2012-07-24 14:41
starzq00123
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2012-7-20
得分:0 
版主 还是你来吧! 你有QQ不 想和你交个朋友!拯救我们这些小白们吧
2012-07-24 14:47
starzq00123
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2012-7-20
得分:0 
苦命的孩子没有书 我是看的网上看的谭浩强讲义的教学视频 视频上定义的d是int 我自己想的如果把d定义为unsigned 结果会是什么样结果出来是负的,就遇到问题了 。好吧我在网上查查资料吧。
2012-07-24 15:01
starzq00123
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2012-7-20
得分:0 
我好像了解了 是printf 输出的格式我给的是%d整型的 没有规定没符号(应该是%u)对吧。
对于printf %d %u %f 输出格式的部分现在还不是分的很清 慢慢学吧!
2012-07-24 15:14
starzq00123
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2012-7-20
得分:0 
呵呵,谢谢虽然你里面说的许多专业的术语 对我们这些小白还并不太听懂 。但我了解这是怎么回事了 也知道要是改成%u 后面出来的那个4294967282 是怎么来的了 就是先用二进制表示翻译-14 在用unsigned int 用十进制的翻译出来的。
无论前面定义的是什么 后面决定执行.EXE所显示结果的格式是由你的printf的格式所限制的 你让它以什么形式表现出来 它就以什么形式表现。
2012-07-24 15:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-374006-1-1.html




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

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