#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,N;//N=n
int length,Length;//变量位长 不变量位长
cout<<"请输入二进制位数"<<endl;
cin>>Length;
cout<<"请输入十进制数字"<<endl;
while(cin>>n)
{
bool a[Length]={0};
length=0;
N=n;
cout<<n<<"-->";
while(n!=0)//取余
{
a[length]=n%2;
n=n/2;
length++;
}
if(N<0)//负数处理
{
length=Length;
while(length!=0)//原码-->反码
{
length--;
if(a[length]==0)
a[length]=1;
else
a[length]=0;
}
for(int i=0;i<Length;i++)//反码+1-->补码
{
if(a[i]==0)
{
a[i]=1;
break;
}
else
{
a[i]=0;
}
}
}
length=Length;
for(int i=0;i<Length;i++)//倒序输出
{
cout<<a[--length];
}
cout<<endl;
}
return 0;
}
十进制转二进制(自定义二进制位数且考虑负数)
最新推荐文章于 2023-03-10 17:55:39 发布