栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++:让计算机象人一样运算数(一)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++:让计算机象人一样运算数(一)

我们知道,计算机,每一种编程语言,都有自己表示数的方法。受制于表示形式、长度,机器的计算是不精确的、有限制的。虽然平常应用够了,但与人类的方式还是不同。

C语言有大数库。GMP等等,应当是很强大的。但是还是不自然吧。

C++的方法,运算符重定义等等,才可以写出更自然的?

在形式上,思维上更符合人类行为的 大数库,是否已经有了?请告诉我!

不在底层求效率,思维上更接近人类的。

有想法的写一写?

以下,先把数表示出来?

#ifndef NUMBER_H
#define NUMBER_H
#include 
#include 
#include 
#include

bool can_convert_to_Number(std::string str); 

template
concept can_to_number  = requires(T t){ 
	{ std::to_string(t) } -> std::same_as;	
	can_convert_to_Number(std::to_string(t)) == true;
	};

class Number
{
	private:
		std::string _value;
	
	public:
		Number():_value("0"){};
		Number(can_to_number auto a):_value(std::to_string(a)){};
		Number(std::string a){
			if(can_convert_to_Number(a)) 
				_value=a;
			else
				throw "Must can convert to Number.";		
		};
		
		~Number();
		void print(){std::cout << _value < 
#include "Number.h"
Number::~Number()
{
}

bool can_convert_to_Number(std::string str)
{
	std::regex r("(^[+-]?)((0$)|([1-9][0-9]*[.][0-9]+$)|(0[.][0-9]+$)|([1-9][0-9]*$))");	
	bool flag = std::regex_match(str, r);
	return flag;	
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/767809.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号