负数十进制转二进制
三布
(1)先将十进制转为二进制数:
例:(-10)10=(00000110)2 带符号
(2)将二进制数取反:
取反得11111001
(3)将取得得反码加一:
得:11111010;
即(-10)10=(11111010)2
根据系统,如果int占32位得话需要补齐位数空位全部为0.
#include"iostream"
using namespace std;
main()
{ unsigned u=10;
int i=-42;
cout<<i+i<<endl;
cout<<u+i<<endl;
return 0;
}
输出:-84
4294967264