注册 登录
编程论坛 C++教室

为什么输出是负数的?

dreamhouse 发布于 2012-05-28 09:14, 361 次点击
#include<iostream.h>
void main()
{
    int i=1,j=2,k;
    k=~i;
    cout<<k<<endl;
}
7 回复
#2
佳嘉2012-05-28 09:32
0000 0000 0000 0000 0000 0000 0000 0001
取反
1111 1111 1111 1111 1111 1111 1111 1110
#3
习惯被动2012-05-28 10:33
那为什么会还减一呀?
#4
佳嘉2012-05-28 10:35
回复 3楼 习惯被动
你看看原码,补码
#5
dreamhouse2012-05-29 01:20
回复 4楼 佳嘉
我有看过啊,我没注意这个,多谢提醒
#6
dreamhouse2012-05-29 01:25
回复 2楼 佳嘉
这个2的取反不对咯,应该是0 0 0 0 0 0 1 0改成1 1 1 1 1 1 1 0 1
#7
佳嘉2012-05-29 08:54
回复 6楼 dreamhouse
你的i=1,不是2吧
#8
dreamhouse2012-05-29 18:28
回复 7楼 佳嘉
唔好意思,我看错啦!
1