负数的补码是算的?
-8的补码是多少啊?谁能告诉我吗?最好是把计算的过程写写!thanks --------------------编程问答-------------------- 32位太长了,就当是16位吧-8是1000000000001000
负数的补码是取反加1
所以是1111111111111000
ps:如果不是计算机专业的最好别搞vc --------------------编程问答-------------------- #include<iostream.h>
#include<stdio.h>
void main()
{
int n, i;
unsigned mask;
cout<<"请输入一个整形数: n=";
cin>>n;
cout<<n<<"的二进制数的补码为:"<<endl;
mask = 1 << (sizeof(n));
for (i = 0; i < sizeof(n)+1; i++)
{
if (n & mask)
putchar('1');
else
putchar('0');
n <<= 1;
}
cout<<endl;
}
这是一个在VC6.0下运行成功的程序计算补码.
对于整数而言,正数的原码,反码和补码都是一样的
而负数的反码是原码除符号位按位取反,补码则是反码再加工1,如下:
1100110011 原
1011001100 反 除符号位,按位取反
1011001101 补 除符号位,按位取反再加1
正数的原反补是一样的
至于小数据那就更复杂了,那就要仔细看书了. --------------------编程问答-------------------- -8等于8的二进制取反加1
补充:.NET技术 , VC.NET