闲得慌,我用类写了三个数据类型

文章展示了如何使用C++通过类来实现自定义的数据类型,包括Short、Int和Long,这些类型模拟了短整型、整型和长整型的行为。类中包含了位操作和运算符重载(如++),以及转换为对应的原始整型值的功能。
摘要由CSDN通过智能技术生成

众所周知,用类写一种数据类型很容易,上代码!

/*实现数据类型*/
class Short{
	public:
		#define Shortsize 16
		bool fu;
		bool data[Shortsize];
		void ShortAnd(int wei=0){
			if(data[wei]){
				data[wei]=0;
				ShortAnd(wei+1);
			}else{
				data[wei]=1;
			}
		}
		template<typename T>
		Short(T i=0){
			while(1)
				if(i>0){
					(*this)++;
					i--;
				}else{
					break;
				}
		}
		Short(){
			Short s(0);
			*this=s;
		}
		Short operator++(int){
			Short s=*this;
			const int wei=0;
			if(data[wei]){
				data[wei]=0;
				ShortAnd(wei+1);
			}else{
				data[wei]=1;
			}
			return s;
		}
		Short operator++(){
			const int wei=0;
			if(data[wei]){
				data[wei]=0;
				ShortAnd(wei+1);
			}else{
				data[wei]=1;
			}
			return *this;
		}
		operator short(){
			short ret(0);
			for(int i=0;i<Shortsize;i++){
				if(data[i]){
					if(i==0){
						ret++;
					}else{
						ret+=i*2;
					}
				}
			}
			return ret;
		}
};
class Int{
	public:
		#define Intsize 32
		bool fu;
		bool data[Intsize];
		void IntAnd(int wei=0){
			if(data[wei]){
				data[wei]=0;
				IntAnd(wei+1);
			}else{
				data[wei]=1;
			}
		}
		template<typename T>
		Int(T i=0){
			while(1)
				if(i>0){
					(*this)++;
					i--;
				}else{
					break;
				}
		}
		Int(){
			Int s(0);
			*this=s;
		}
		Int operator++(int){
			Int s=*this;
			const int wei=0;
			if(data[wei]){
				data[wei]=0;
				IntAnd(wei+1);
			}else{
				data[wei]=1;
			}
			return s;
		}
		Int operator++(){
			const int wei=0;
			if(data[wei]){
				data[wei]=0;
				IntAnd(wei+1);
			}else{
				data[wei]=1;
			}
			return *this;
		}
		operator int(){
			int ret(0);
			for(int i=0;i<Intsize;i++){
				if(data[i]){
					if(i==0){
						ret++;
					}else{
						ret+=i*2;
					}
				}
			}
			if(fu){
				ret= -ret;
			}
			return ret;
		}
};
class Long{
	public:
		#define Longsize 64
		bool fu;
		bool data[Longsize];
		void LongAnd(int wei=0){
			if(data[wei]){
				data[wei]=0;
				LongAnd(wei+1);
			}else{
				data[wei]=1;
			}
		}
		template<typename T>
		Long(T i=0){
			while(1)
				if(i>0){
					(*this)++;
					i--;
				}else{
					break;
				}
		}
		Long(){
			Long s(0);
			*this=s;
		}
		Long operator++(int){
			Long s=*this;
			const int wei=0;
			if(data[wei]){
				data[wei]=0;
				LongAnd(wei+1);
			}else{
				data[wei]=1;
			}
			return s;
		}
		Long operator++(){
			const int wei=0;
			if(data[wei]){
				data[wei]=0;
				LongAnd(wei+1);
			}else{
				data[wei]=1;
			}
			return *this;
		}
		operator long(){
			long ret(0);
			for(int i=0;i<Longsize;i++){
				if(data[i]){
					if(i==0){
						ret++;
					}else{
						ret+=i*2;
					}
				}
			}
			if(fu){
				ret= -ret;
			}
			return ret;
		}
};

你就说闲不闲吧 !

希望大家能献出自己宝贵的赞,谢谢!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是一个基于Vue的社区闲置物品交换系统的简要架构: 1. 首先,你需要一个后端服务器,用于处理用户提交的信息,例如用户的个人资料、物品清单和交易请求等。你可以使用任何你喜欢的后端框架,例如Node.js或PHP等。 2. 然后,你需要一个前端界面,用于展示用户的物品列表和交易信息。这个界面可以使用Vue.js框架来实现。你需要用Vue.js创建一个单页面应用程序,用于处理用户的交互操作,例如浏览物品、添加物品、发起交易请求等。 3. 在前端界面中,你需要为用户提供一个注册登录的界面,用于管理用户的身份信息和物品清单。你可以使用任何你喜欢的身份验证库,例如Passport.js等。 4. 当用户添加物品到清单中时,你需要将这些信息存储到后端数据库中。你可以使用MySQL或MongoDB等数据库来存储用户的物品信息。 5. 当用户发起交易请求时,你需要将这些请求发送到后端服务器进行处理。后端服务器应该能够处理这些请求,并向用户发送确认邮件,告知他们该如何进行交易。 6. 最后,在用户完成交易之后,你需要向后端服务器发送一个确认请求,以便将交易信息保存到数据库中,并通知其他用户该物品已经被交换。 以上就是一个基于Vue的社区闲置物品交换系统的简要架构。你可以根据实际需求和技能水平来进一步扩展和优化它。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值