负数的补码是算的?

zhouxi020 2008-10-23 12:30:49
-8的补码是多少啊?谁能告诉我吗?最好是把计算的过程写写!thanks
...全文
902 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
HimeTale 2008-10-23
  • 打赏
  • 举报
回复
32位太长了,就当是16位吧
-8是1000000000001000
负数的补码是取反加1
所以是1111111111111000

ps:如果不是计算机专业的最好别搞vc
liuweibit 2008-10-23
  • 打赏
  • 举报
回复
#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
正数的原反补是一样的

至于小数据那就更复杂了,那就要仔细看书了.
Dan_M 2008-10-23
  • 打赏
  • 举报
回复
-8等于8的二进制取反加1

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧