十进制变补码.cpp

来自「5个关于布尔运算的C程序」· C++ 代码 · 共 41 行

CPP
41
字号

  #include <math.h>
  #include <stdio.h>
  #include <iostream.h>
  ////////////////////////////////////////////////////
  // m为输入十进制数据,n为转换为补码二进制德位数    //
  // 返回出错信息时,函数返回无效值                  // 
  ////////////////////////////////////////////////////
  int dec2bin(int m,int n)
  { float i,k,l,flag=0;

    if(abs(m)>((1<<(n-1))-1))
     printf("\n error!\n");
    if(m<0) { m+=1<<(n-1);
              flag=1;
              }

    k=0;  l=1;
    for(i=1;i<n-1;i++)
      { k+=l*(m%2);
        l=l*10;
        m=m/2;
        }
    k+=m*l;
  
    if(flag==1)
      k+=pow(10,n-1);
    
    return k;
    }

  void main( )
  { int a,b;

    a=-15;
    b=dec2bin(a,8);
    printf("\n A=%d",b);
    scanf("%d",&a);
    } 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?