| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 727 人关注过本帖
标题:请懂的朋友指点一下谢谢
只看楼主 加入收藏
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:8 
请懂的朋友指点一下谢谢
#include<stdio.h>
int main()
{
    char c1,c2;
    c1=197,c2=198;
    printf("c1=%c,c2=%c\n",c1,c2);
    printf("c1=%d,c2=%d\n",c1,c2);
    return 0;
}
小弟刚开始入门C语言.请问运行这个程序为什么结果是:c1=?,c2=?
                                                 c1=-59,c2=-58.
请帮忙分析一下原因.愚人感激不尽.谢谢!   
搜索更多相关主题的帖子: 朋友 
2010-10-02 23:43
cacker
该用户已被删除
收藏
得分:5 
提示: 作者被禁止或删除 内容自动屏蔽
2010-10-02 23:51
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:0 
回复 2楼 cacker
请再指导一下,那个溢出来的-59 和-58 从何而来.谢谢!
2010-10-03 00:02
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
首先你要明白整数在计算机中是以二进制存放的!197的二进制是11000101,转换为补码是10111010,再转换成二进制就是负的59了!198也是一样的!你自己琢磨下吧!

付出终将有回报!Ibelieve!
2010-10-03 09:00
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
不好意思!上面忘了两个字!按二进制补码存放的!手机发的,不好打字!

付出终将有回报!Ibelieve!
2010-10-03 09:03
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:0 
回复 4楼 whbc
谢谢你。书上不是说。负数才是按补码存放的吗。198 197是正数呀。我还是没搞明白那个-59  -58 的来拢去脉。我再琢磨一下吧。谢谢你!
2010-10-04 08:57
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
回复 6楼 刘定邦
都是按补码存放的!正数也是!

付出终将有回报!Ibelieve!
2010-10-04 13:58
Windy0Winll
Rank: 2
来 自:走了
等 级:等待验证会员
帖 子:71
专家分:90
注 册:2010-8-26
收藏
得分:0 
补码 :  1.正数的补码形式就是它的原码 ;
        2.负数的补码形式就是它对应的正数 取反再加1

-x 可以这样得到 取反再加1(x 可以是负数)

197的二进制是  1100 0101,
如果把它表示为signed char(8位)的话 ,那么这是一负数,最高位是1. 下面来算这个负数上多少:
   设这个负数是x,那么-x 应该是 (取反得0011 1010,再加一得0011 1011)0011 1011.
就是这个数,(0011 1011)二进制  = (1+2+8+16+32)十进制 = (59)十进制
结合前面的负号就是 -59了。

悄悄地来。。。 然后悄悄地走。。。。。。
2010-10-04 14:03
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:0 
回复 8楼 Windy0Winll
非常感谢!!  明白了.
2010-10-05 01:11
快速回复:请懂的朋友指点一下谢谢
数据加载中...
 
   



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

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