zoukankan      html  css  js  c++  java
  • 整型数补码原码

    #define MAX 32 
    
    void IntToBinary(char binary[], int x);  // x转换为二进制 
    void IntToBinary2(char binary[], int x); // 不同的思路可以有多种方法 
    void TrueForm(char binary[], int x);    // 获得x的原码 
    void RadixMinus(char binary[], int x);  // 获得x的反码 
    void Complement(char binary[], int x);  // 获得x的补码 
    
    void main() 
    { 
        char binary[MAX+1] = {0}; 
        int number; 
        printf("输入要测试的整型:"); 
        scanf("%d",&number); 
        IntToBinary2(binary,number); 
        printf("%d 的二进制表示: %s
    ",number,binary); 
        TrueForm(binary,number); 
        printf("%d 的原码: %s
    ",number,binary); 
    
    } 
    
    void IntToBinary(char binary[], int x) // 由高位到低位转换 
    { 
        for(unsigned int i = 0x80000000, j = 0; i > 0; i >>= 1) 
        { 
            binary[j++] = x & i ? '1':'0'; 
        } 
    } 
    
    void IntToBinary2(char binary[], int x) // 由低位到高位转换 
    { 
        for(int j = MAX-1; j >= 0; --j) 
        { 
            binary[j] = (x & 1) + '0'; 
            x >>= 1; 
        } 
    } 
    
    void TrueForm(char binary[], int x) // 对于负数,计算机存储的是补码 
    { 
        if(x >= 0) 
        { 
            IntToBinary(binary,x); 
        }else 
        { 
            IntToBinary(binary,(1<<(MAX-1))-x); // 由原码数学公式得 | 1<<n <=> 2^n 
        } 
    } 
    
    void RadixMinus(char binary[], int x) 
    { 
        if(x >= 0) 
        { 
            IntToBinary(binary,x); 
        }else 
        { 
            IntToBinary(binary,x-1);  // 计算机存储的是补码,负数的反码等于补码减一 
        } 
    } 
    
    void Complement(char binary[], int x) 
    { 
        IntToBinary(binary,x); 
    }

    上面的程序IntToBinary就是把内存结构用字符串表示出来。这样可以看出整数负数都是用补码表示的。

    int一般在内存中按补码存储,整数补码和原码相同,负数原码=2(n-1次方)-补码

  • 相关阅读:
    HTML DOM教程 14HTML DOM Document 对象
    HTML DOM教程 19HTML DOM Button 对象
    HTML DOM教程 22HTML DOM Form 对象
    HTML DOM教程 16HTML DOM Area 对象
    ubuntu 11.04 问题 小结
    VC6.0的 错误解决办法 小结
    boot.img的解包与打包
    shell里 截取字符串
    从零 使用vc
    Imagemagick 对图片 大小 和 格式的 调整
  • 原文地址:https://www.cnblogs.com/Yogurshine/p/3938897.html
Copyright © 2011-2022 走看看