当前位置: 代码迷 >> C语言 >> 我的问题又来了,
  详细解决方案

我的问题又来了,

热度:127   发布时间:2006-02-19 14:49:00.0
我的问题又来了,
希望高手帮忙

main ()
{
int a,b;
unsigned int c;
a=-123;b=-456;
c=a+b;
printf ("c=%d",c);
getch ();
}

比如说这个程序,好像是定义了C是无符号的对吧,结果不可能是-579

程序自己会进行被码转换吗?有没有朋友说说怎么改才行

如果我这样运行,在TC应该是报错的对吧,



希望高手能指点我换一个软件,就是那种和ISO定义一样的,我怕

到时候用习惯了,用别的软件会改不过来

不知道我这种想法对不对

还有一个小问题:
如:123456.789
1.23456789e5
1.23456789e+005
这两种表示方法都对吗?标准应该是那一种呢?

[此贴子已经被作者于2006-2-19 14:53:52编辑过]


----------------解决方案--------------------------------------------------------

我刚才运行了一下 你的第一个程序..答案是 -579

具体原因我还没想明白..让我想想

第二个 我认为 标准应该是 第1种 1.2356789e5

第2种好象是在内存里的存储方式


----------------解决方案--------------------------------------------------------
第一个问题 我想应该是输入问题..如果你输入时 是:printf("%u",c) 的话结果就应该是64957

自己去试一下吧
----------------解决方案--------------------------------------------------------
这个是不是就是补码后的结果
----------------解决方案--------------------------------------------------------

我的结果还是不是你说的那个64957

main ()
{
int a,b;
unsigned int c;
a=-123;b=-456;
c=a+b;
printf ("%u",c);
getch ();
}

我的结果是dev上面结果4294966717
TC上面的结果:-57964957


[此贴子已经被作者于2006-2-19 16:01:57编辑过]


----------------解决方案--------------------------------------------------------
我用的是 WIN-TC 我感觉我的比较接近.呵呵~~你的差的太离谱了


----------------解决方案--------------------------------------------------------

main ()
{
int a,b;
unsigned int c;
a=-123;b=-456;
c=a+b;
printf ("%x",c);
getch ();
}
结果:fffffdbd是-597的补码
我用的是MinGW


----------------解决方案--------------------------------------------------------
  相关解决方案