当前位置:编程学习 > C#/ASP.NET >>

负数的补码是算的?

-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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,