| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 777 人关注过本帖
标题:为什么会是这样的输出?
只看楼主 加入收藏
zuohaoziji55
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-2-21
结帖率:0
收藏
已结贴  问题点数:20 回复次数:10 
为什么会是这样的输出?
图片附件: 游客没有浏览图片的权限,请 登录注册
2014-02-21 22:45
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
你想咋弄

DO IT YOURSELF !
2014-02-22 07:14
石英夫都
Rank: 1
来 自:青岛
等 级:新手上路
帖 子:3
专家分:8
注 册:2014-2-21
收藏
得分:4 
按照它的指示弄

all ever i wanted is on the way,i'll gonna make it
2014-02-22 10:03
樊英杰
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2014-2-23
收藏
得分:4 
%o 是以8进制输出 并且只能输出整数
如果是负数vc++会自动转换成整数
2014-02-23 12:59
黑色洋葱
Rank: 2
等 级:论坛游民
帖 子:13
专家分:11
注 册:2014-2-14
收藏
得分:4 
改成printf("%d\n",a);
就能输出-1
但具体原因我也不清楚
有大神帮忙解释一下么
2014-02-23 16:38
张学平
Rank: 2
等 级:论坛游民
帖 子:26
专家分:13
注 册:2013-11-20
收藏
得分:4 
回复 5楼 黑色洋葱
int a=-1;(LZ电脑int是32位编译器。。?)
就意味着a的存储形式是
0000 0000 0000 0000 0000 0000 0000 0001(原码)
1111 1111 1111 1111 1111 1111 1111 1110(反码)
1111 1111 1111 1111 1111 1111 1111 1111(补码)
以%d为格式输出,则机器认为首位是符号位并对数据进行上述操作的逆运算,结果加个负号就成了‘-1’
以%o为格式输出,就直接把这一串二进制数转成八进制了,不考虑负号了。结果就是37777777777
个人新手,可能有错多包涵
2014-02-24 09:55
Artless
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:4211
专家分:28888
注 册:2009-4-8
收藏
得分:4 
%o八进制输出整数,%d整型输出
没学过,说错别笑。

无知
2014-02-24 09:58
黑色洋葱
Rank: 2
等 级:论坛游民
帖 子:13
专家分:11
注 册:2014-2-14
收藏
得分:0 
回复 6楼 张学平
你要是新手 呢我就是新手中的菜鸟了
前面看懂了。 (补码)是什么意思?
之后什么叫逆运算?
%d和%o的区别还是不太明白
帮帮忙解答解答。。。
2014-02-24 16:11
张学平
Rank: 2
等 级:论坛游民
帖 子:26
专家分:13
注 册:2013-11-20
收藏
得分:0 
回复 8楼 黑色洋葱
补码就是计算机数据的存储形式,运算法则是正数不进行变换,原码即为补码,负数先将原码取反再+1求得补码。不要问我为什么用补码,,我也不懂
我说逆运算就是从补码往原码倒着推呗
输出格式%d就是以整数格式输出,%o是八进制格式,%x是16进制,%f是实数形式。应该就是这样了吧
2014-02-25 08:53
黑色洋葱
Rank: 2
等 级:论坛游民
帖 子:13
专家分:11
注 册:2014-2-14
收藏
得分:0 
回复 9楼 张学平
原来如此 实在是非常感谢 我们做朋友吧
2014-02-25 12:47
快速回复:为什么会是这样的输出?
数据加载中...
 
   



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

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