首页 > 其他分享 >原码转反补码

原码转反补码

时间:2023-10-21 09:22:44浏览次数:38  
标签:false 转反 补码 str tf jinwei true 原码

#include <iostream>
using namespace std;
int main(){
	string str;
	char t;
	bool jinwei=true;
	bool tf;
	cin>>str>>t;
	if(str[0]=='0'&&t=='f'){
		cout<<str;
	}else if(str[0]=='1'&&t=='f'){
		for(int i=1;i<=str.size();i++){
			if(str[i]=='0'){
				str[i]='1';
			}else if(str[i]=='1'){
				str[i]='0';
			}
		}
		cout<<str;
	}
	
	if(str[0]=='0'&&t=='b'){
		cout<<str;
	}else if(str[0]=='1'&&t=='b'){
		for(int i=1;i<=str.size();i++){
			if(str[i]=='0'){
				str[i]='1';
			}else if(str[i]=='1'){
				str[i]='0';
			}
		}
		
		for(int i=str.size()-1;i>1;i--){
			if(str[i]=='1'){
				tf=true;
			}else if(str[i]=='0'){
				tf=false;
			}
			if(!tf){
				break;
			}
		}
		if(tf){
			cout<<"11";
			for(int i=0;i<str.size()-1;i++){
				cout<<'0';
			}
			return 0;
		}
		for(int i=str.size()-1;i>=1;i--){
			if(str[i]=='0'){
				if(jinwei==true){
					str[i]='1';
					jinwei=false;
					break;
				}
						
			}else if(str[i]=='1'){
				if(jinwei==true){
					str[i]='0';
					jinwei=true;
				}
			}
		}
		for(int i=0;i<str.size();i++){
			cout<<str[i];
		}
	}
	return 0;
}

  

标签:false,转反,补码,str,tf,jinwei,true,原码
From: https://www.cnblogs.com/wangyueshuo/p/17778451.html

相关文章

  • 原码、反码、补码学习
    Java没有无符号数,所以首位都是符号位标志位0表示正数,1表示负数原码是数字的二进制表示,首位为符号位数字的表示用原码,计算用补码(因为计算机只有加法器,减法转换为加法)正数的原码=反码=补码(三码合一)负数反码=原码符号位不变,其余取反负数的补码=反码+10的补码=0000......
  • 原码, 反码, 补码
    原码,反码,补码原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负.原码的弊端:1,利用原码进行计算的时候,如果是整数完全没有问题.2,但是如果是负数计算,结果就出错,实际运算的方向,跟正确的运算方向是相反的.反码出现的目的:为了解决原码不能计算负数......
  • 计算32位二进制整数中1的个数(包括负数补码)
    引言:在计算机科学和编程中,位操作是一项重要的技能。一个常见的任务是计算一个32位二进制整数中1的个数,包括负数的补码表示。这个问题有多种解决方法,本博客将介绍一种高效的解决方案,同时提供详细的代码案例。背景知识:在正整数的二进制表示中,1的个数表示了这个数的二进制形式中有多少......
  • 求一个整形整数原码中1的个数(不考虑溢出)
    intmain(){ unsignedinta=0; intcount=0; printf("请输入要求的整数>>:"); scanf("%d",&a); while(a) { if(a%2) { count++; } a=a/2; } printf("该数中二进制位为1的位数为%d",count); return0;}intmain(){......
  • 原码
    3.5原码,反码,补码在二进制的编码过程中分为原码,反码,补码。原码是计算机对数字二进制定点表示方法。原码表示法在数值前面增加了符号位(即最高位为符号位):0代表正,1代表负。原码在计算机内部不能直接进行计算。反码是数值存储的一种,多应用于系统环境设置。补码是计算机中数字存储的常......
  • 【有符号数】原码,反码,补码表示法
     1.原码......
  • 补码与反码(附运算优先级)
    2023-08-3016:56:00我们都知道在计算机存储的时候,有符号的数都会用最高位作为符号位。参考:什么是原码、反码和补码原码就是正常的二进制数,把最高位改成符号位(0为正数,1为负数)。正数计算不会有问题:5+2:00000101+0010-----------------00000111......
  • 补码和移码
       ......
  • JavaSE(2)(简单了解idea, 项目结构,运算符,数据转换,原反补码)
    JavaSE(2)(简单了解idea,项目结构,运算符,数据转换,原反补码)p28idea项目结构project项目 > module模块 > package包 > class类拿微信举例,微信就是项目,它下方的四大功能(微信,通讯录,发现,我)就是模块,一个项目是包含一个或多个模块的.以第一个微信模块为例,我们......
  • 计算机中的原码、补码、反码
    参考:深入理解计算机中的原码、补码、反码-知乎(zhihu.com)计算机底层存储数据时使用的是二进制数字,但是计算机在存储一个数字时并不是直接存储该数字对应的二进制数字,而是存储该数字对应二进制数字的补码。机器数:一个数在计算机的存储形式是二进制数,我们称这些二进制数为机......