关于计算补码
  • 板块学术版
  • 楼主shy_lihui
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/21 02:24
  • 上次更新2024/8/21 10:51:58
查看原帖
关于计算补码
1053122
shy_lihui楼主2024/8/21 02:24

求改

#include<bits/stdc++.h>
using namespace std;
string s;
int a[10005],l;
int main()
{
	//freopen("code.in","r",stdin);
	//freopen("code.out","w",stdout);
	cin>>s;
	if(s[0]=='0')
	{
		cout<<s;
		return 0;
	}
	l=s.size();
	for(int i=0;i<l;i++)
	{
		a[i]=s[l-i-1]-'0';
	}
	for(int i=1;i<(l-1);i++)
	{
		a[i]=(a[i]==1?0:1);
	}
	int jy;
	a[0]++;
	if(a[0]==2)
	{
		jy=1;
		a[0]=0;
	}
	for(int i=1;i<l;i++)
	{
		a[i]+=jy;
		jy=a[i]/2;
		a[i]%=2;
	}
	for(int i=l-1;i>=0;i--)
	{
		cout<<a[i];
	}
	return 0;
}
2024/8/21 02:24
加载中...