我的问题又来了,
希望高手帮忙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
----------------解决方案--------------------------------------------------------