我是大连民族大学学院的新生请问如果办理了助...

请问各位路过的学哥学姐,我是今年大连民族学院的新生,想问一下迁户口好不好呢?迁与不迁有什么优缺点?_百度知道
请问各位路过的学哥学姐,我是今年大连民族学院的新生,想问一下迁户口好不好呢?迁与不迁有什么优缺点?
谢谢各位。
提问者采纳
比如报考驾照,是我们班的班长,那么大可不必办理这样的身份证,因为你回原籍后身份证要重新办理,要看你自己是怎么想的了,只靠自己买的养老保险是行不通的,必须找到了就业单位并且这个单位愿意给你交养老保险才能落户大连的,但是,否则有些事情是不能做的。而养老保险分为两部分,户口迁到大连后属于集体户口,你的省份证上就有一个大连的地址。千万不要壮志雄心的以为自己没问题的。所以呢,学校会组织大家一起去办理身份证,现在大连有新的规定,也就是说,其实回原籍的时候更麻烦,如果你想毕业后回原籍,如果你以后要留在大连的话,也不用迁户口,那么你迁户口以后,当时班里的这些户口的情况我都参与了管理,迁了户口。还有,所以比较熟悉,还是对你有用的,就是毕业后要与企业签订合同,当初我也是这么认为。首先,一部分是自己交的,一部分是企业为你交的,唯一的好处就是毕业后有可能落户大连,有养老保险,如果你还没有办理身份证这个我来细心的给你解答一下吧,那样返到麻烦。但是,这样,我原来也是大连民族学院的,祝福你,大连是美好的开始。加油
提问者评价
非常感谢。
其他类似问题
按默认排序
其他2条回答
大学户口属于 集体户口迁过去了也没啥用毕业了 如果不能留在城市 单位不能解决户口问题你的户籍还是要被打回原籍这个看你吧反正作用不大!
不要迁,没有用,过来人的学长建议
大连民族学院的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁谁能介绍一下大连民族学院_百度知道
谁能介绍一下大连民族学院
校的男宿舍.几个人一屋.收费情况?是要改名为大连民族大学吗.学校环境怎么样
其他的答案是谁啊.除了三楼!我问的是宿舍你们的眼睛有没有毛病啊
提问者采纳
自治区、个人资助基金;人、优秀学生干部;人.edu。国家民委生物化工重点实验室和大连市生物技术中心设在学院,为经济困难学生办理家教、进步”为校训、预科部,1997年7月经原国家教委批准正式建校,开始独立招生办学,现在校生人数为5、韩国。  4.设立勤工助学基金、加拿大,500人、管.7万平方米。“十五”期间:  特等奖。学院占地36。  特等单项奖学金:  特等奖、日本文化.年  三等奖.edu、专家互访频繁;现设有20个本科专业:zyf@dlnu、文、多媒体教室;人、足球、机电信息工程系、外国语言文化系、排球场地:2000元&#47,同时还设立了生物化工、直辖市招生。现有在校教职工400多人、日语语言文学2个省部级重点学科:www、社会实践等项.edu、实习基地和标准的田径,经济困难学生可凭家乡所在地政府所开据的&quot、自强、经:1000元&#47。学院将进一步加大人才引进的力度。  2.设立国家助学贷款。  5.设立社会团体,000人。  学院坚持为少数民族以及民族地区经济建设和社会发展服务的宗旨、教学技术中心,积极采取各种措施确保经济困难学生顺利完成学业;特困证明&quot、勤俭自强,加强和改进思想政治工作、体育教研部,所有获奖学生必须是第一志愿报考我院的考生.dlnu。学院目前与日本.年 艺术类专业,现已建成校舍26万平方米。  大连民族学院联系方式  地址,其中专任教师260多人。  3.设立国家奖学金;人  一等奖、工业艺术设计系,实施科研牵动和人才兴校战略.年  一等奖.年 艺术类专业;直接办理入学手续;人,以及4人一间的学生宿舍和花园式公寓标准的职工住宅。  大连民族学院奖学金设置  1.新生入学奖学金:  1.学院设立大学生勤工助学服务中心;人。  6.设立特困补助基金.年 艺术类专业;学院目前设有9系4部1院。学院现有生物化工:4000元):3500元&#47,为师生提供了良好的学习和生活条件,预科生205人,二等奖、求是。  2.综合奖学金:1000元&#47,并专门成立了人才引进办公室,面向国内外招聘高水平专门人才: 500元&#47,同时还设立了生物化工:4000元&#47  大连民族学院院校概况  大连民族学院于1984年以东北民族学院名义立项筹建,1993年以中央民族大学名义招生办学
其他类似问题
大连民族学院的相关知识
其他7条回答
人&#47,你给不给啊;年近期是不会改的200分,太容易拿了;间800元&#47
大连民族学院是直属于国家民族事务委员会,以工科为主,工、经、管、文、法、理等门类协调发展的多科性普通高等学校。学校1984年立项筹建,1993年开始招生办学,1997年7月经国家教委批准,定名为大连民族学院,是国内最年轻的大学之一。
学校坐落于中国海滨名城大连市,位于黄海之滨的大连经济技术开发区中心,依山傍海,气候宜人。校园建筑总面积25万平方米, 资产总额5.9亿元,建成了可容纳万人规模的办学设施。学校现有教学科研设备总值1.18亿元,图书馆藏书68万册,体育活动场馆面积5万多平方米,实验室面积6.8万平方米,计算机、多媒体、网络课件等现代信息技术在教学科研工作中得到了广泛应用;学生公寓和食堂全部实行了社会化管理,为师生提供了良好的教学、科研和生活条件。整个校园呈现出现代高等学校浓郁的文化气息和蓬勃的发展生机。
学校面向全国26个省(直辖市、自治区)招生,现有在校生10089余人,来自48个民族的少数民族学生占学生总数的65%左右。学校以本科教育为主,同时进行民族预科、成人和留学生教育,积极发展研究生教育。目前设有经济管理学院、机电信息工程学院、生命科学学院、外国语言文化学院、计算机科学与工程学院、设计学院、土木建筑工程学院、文法学院、理学院以及体育教学研究部、预科部、国际文化交流学院和成人教育学院。设有33个本科专业。
学校坚持为少数民族和民族地区服务的办学宗旨,坚持新校新办、高起点高标准建设的方针,全面贯彻落实科学发展观,以教学为中心,以科研为先导,实施科研牵动和人才兴校战略,推进了办学规模、结构、质量和效益的协调快速发展,在民族高等教育事业全局中发挥了特殊而重要的作用,为少数民族和民族地区现代化建设提供了人才支持和知识贡献,办学整体水平和综合实力明显提高,为在沿海开放地区培养少数民族人才创出了一条新路。
学校以科学发展观统领学校教育事业全局,坚持以人为本、因材施教、特色办学的教育理念,把培养具有创新精神、实践能力、开放意识和适应社会需要的各民族高素质人才作为根本任务。坚持以教学为中心,以不断提高本科教育质量为主线,以加强学科建设为龙头,以建设高水平师资队伍为关键,以构建和谐校园和优化办学环境为保障,努力建设以工科和应用学科为主,多学科协调发展的高水平教学型普通高等学校。学校一直把提高本科教学质量作为立校之本,始终坚持加强教学基本建设,深化教学改革,按照因材施教和适应社会需求的原则,深化课程体系、教学内容和教学方法的改革,全面推进素质教育和人才培养模式的创新,学生的自主学习能力、创新实践能力和适应社会的能力有明显的提高。注重加强学风建设,把建设优良学风作为全面提高人才培养质量的基础性工程和关键性措施来抓。建立完善教学质量评价体系,全面实施“教学质量与教学改革工程”,积极开展名师、名课、精品教材建设,全面加强专业内涵建设和实践教学基地建设,制定教学改革总体方案并进行了改革试点,加强教学条件的信息化和现代化建设。实施学分制改革,不断优化课程体系,创新人才培养模式,组建了“大学生创新与实践教育研究中心”等4个教学研究中心,实施课内外相结合的素质教育,为培养创新型、复合型人才创造了良好条件。从2002年起组织实施了旨在提高大学生实践创新能力的综合素质拓展项目“太阳鸟”大学生科研活动,学生成为科研立项的主研人,一大批资深博士、教授以指导教师的身份参与到学生科研活动当中,融知识传授与能力培养为一体,有力地促进了学生创新实践能力形成,让学生在校期间获得实践经验,学会与人合作,学会运用知识,培养创造力,锻炼才干,取得了丰硕成果。由于学校高度重视抓好人才培养的各个环节,学生的综合素质和创新能力得到不断提高。几年来,学生在国内外各学科竞赛中频频获奖,学生发表论文300余篇,专著1部,获专利7项,社科基金结题1项。2005年学生荣获了国际数学建模大赛一等奖,在大学生“挑战杯”竞赛中一举夺得三项金奖,开展的教改课题“构建创新创业平台,提升大学生创新实践能力”获高等教育国家级教学成果二等奖。继学校被教育部列为国家民委所属院校唯一“大学英语”教学改革试点单位,并获得国家教育科学“十五”规划课题和教育部大学英语扩展项目后,教改课题“普通高校本科渗透式双语教学的研究与实践”又获得高等教育国家级教学成果二等奖。
学校把毕业生就业工作一直视为对自身教育质量和办学成效的检验,建立了全员抓就业、全过程抓就业、全面抓就业的就业指导工作体系,把就业教育、就业技能培训、就业与创业意识及创业精神的培养,贯穿在本科培养的全过程。在全校建立了人才培养与就业双重责任制,把就业工作与教学质量、招生规模、专业设置、年度工作评价直接挂钩。以就业指导教研室为主要组织部门,深入开展以全过程就业指导理念为基础的贯穿于本科四年的大学生就业指导课程体系。将就业课程纳入教学计划,坚持广开门路,从不同渠道,不同角度积极拓展就业市场,充分发挥地处大连市和开发区的区域优势。重视与知名企业的合作,探索定向培养和合作培训,加强学生实践技能训练。先后与东软股份有限公司大连分公司、上海惠普公司大连分公司、烟台创迹软件、戴尔计算机大连公司等进行了成功的合作。我校毕业生进入知名企业的数量逐年增多,毕业生普遍受到用人单位的欢迎与好评,已连续五年毕业生初次就业率超过90%,2004年、2005年的毕业生初次就业率分别达到96.55%和95%,均名列同类高校和省内各高校的前列。
学校以学科建设为龙头,以经济社会发展和需求为导向,建设一批高水平、有特色、有影响力和竞争力的重点学科,调整和优化学科专业结构,推进学科间的融合和优势学科群的形成。组建成信息科学与工程、生物工程、国际语言文化、民族地区可持续发展等四个重点建设学科研究中心和光电子技术、机电与控制工程、民族地区生物资源与环境研究所、东北少数民族研究院等科研机构,建立了以学科带头人为核心,重点学科、创新团队、研究中心和硕士点建设四位一体的“科研特区”,牵动学科建设、科学研究和教学水平的不断提升,形成了具有本校特色和优势的研究方向。近5年来,学校累计科研经费达到2100万元,有114项科研成果获得省部级和市级奖励;教师在国内外各类专业杂志上发表学术论文1800余篇,其中97篇被SCI、EI、ISTP等收录;出版专著和教材140部。年,我校获得国家自然科学基金11项、国家社会科学基金2项,实现了高水平科研立项的重要突破。生物化工实验室被列为国家民委和辽宁省高校重点实验室,辽宁省现场统计研究会和大连市生物化学工程技术中心等均设在我校。
学校把师资队伍建设作为发展建设的骨干工程,千方百计地创造爱才、聚才、用才的良好环境,大力引进人才,培养人才,创造条件努力实现骨干教师博士化,青年教师硕士化。近几年,每年引进博士、硕士和具有高级专业技术职务的教师近100名。2005年8月,学校聘请了国内知名专家、在我国化学反应工程和流态化反应工程方面具有突出贡献的清华大学金涌院士作为双聘院士和学科建设顾问,从而为进一步提升学校在国内外的学术地位、学科建设、人才培养乃至整体的竞争实力注入新的动力。学校现有教职工总数720余人,在近500名专任教师中,有中国工程院双聘院士1人,具有博士、硕士以上学位的占78%,有副教授以上职称的占48.4%,形成了一支以特聘教授、优秀学科带头人为龙头,以博士、硕士为骨干的高水平教师队伍。
学校积极发展国际教育交流与合作,目前与日本、英国、韩国、新西兰等国家的高等院校和科研机构建立了合作关系,学术交流、科研合作、专家互访频繁。
国家民委、省、市领导一直十分关心和支持大连民族学院的发展建设,2005年10月又在大连开发区金石滩国家旅游度假区划定35.3万平方米地理位置优越、交通便利的做为补充老校区发展空间的新校区。新校区毗邻沈阳音乐学院、鲁迅美术学院,三所学校优势互补,互相依托,有利于形成高校园区文化氛围。新校区规划建设教学、科研、行政用房和学生生活配套设施共计21万平方米,将于2008年开始学生入住新校区。新校区建设规划将秉承以人为本、人与自然融合的原则,高起点规划,高质量建设,努力建设成为具有现代化、网络化、生态化、园林化等特点的一流大学校园,为学校的“二次创业”提供了发展空间。
为了全面适应新世纪新阶段我国少数民族和民族地区经济建设、社会发展和科技进步的需要,改善办学条件,促进该校教育事业全面协调可持续发展,日,国家民委、辽宁省、大连市签署了合作建设大连民族学院的协议,把大连民族学院建设和发展列入到国家少数民族事业发展规划和辽宁省、大连市经济建设、社会发展总体规划中,从资金投入、人才引进、科研立项、硕士点申报、更名大学、教学实习、毕业生就业等方面给予支持。使大连民族学院尽快建设成为教育质量高、创新能力强、办学效益好、特色鲜明的现代化民族大学,更好地为国家和辽宁省、大连市的经济建设和社会发展服务。
面向未来,站在一个新的历史起点上的大连民族学院,全面实施学校的“十一五”发展规划,坚持立足东北、面向全国、服务地方,进一步推进开放式、国际化办学,着力建设创新型民族高校,使之成为具有较强创新能力和良好素质的应用型、复合型人才培养的重要基地,成为知识创新、科技创新、人才荟萃的战略高地和国际文化交流的窗口,成为各民族学子羽翼丰满、展翅高飞的摇篮
学校还不错的,四个人的 八百!比一般的学校划算,!不过条件也就中等吧~~我学校还壹千二呢,还垃圾关于学校改名这一说,我可以和你说还是在谣言中,校方还没有明确的说明!想来你还在乎这几个字啊,学校还不错的!要填志愿了吧 给你个网站参考下!有帮助的看下~
目前大一新生是8人一间 环境拥挤 600元四人环境就好了(也有6人的)上面都说是800 我怎么记的是1200改名字目前没有确切的消息(也包括小道消息)学校环境不错 初来会感觉小的很
4人间 1200\年\人改名的事情,国家说的算近期够戗再就是民族那奖学金还挺多的
地理位置在开发区环境一般学费还行少数民族多
你好 我是民院的 大一男生都是8人一间,因为现在学校招生实在太多了,挤不下,不过新校区正在建设,明年就能搬,大一住宿是900一年,大2换四人间,每年1200环境不错 地处国家级经济开发区,有神州第一开发区之誉的大连开发区中心地段,商业繁华.风景也不错,改名是迟早的事,但近期改不改还不一定
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁加减乘除积的乘方开方算什么逻辑 - 叫阿莫西中心 - 中国网络使得骄傲马戏中心!
加减乘除积的乘方开方算什么逻辑
计算机中是怎样进行减法,除法,乘方,开方等运算的?
[问题点数:20分]
计算机中是怎样进行减法,除法,乘方,开方等运算的?
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2006年10月 Web 开发大版内专家分月排行榜第三
2007年7月 C/C++大版内专家分月排行榜第一2007年6月 C/C++大版内专家分月排行榜第一2007年5月 C/C++大版内专家分月排行榜第一2007年4月 C/C++大版内专家分月排行榜第一2007年3月 C/C++大版内专家分月排行榜第一2007年2月 C/C++大版内专家分月排行榜第一2007年1月 C/C++大版内专家分月排行榜第一2006年12月 C/C++大版内专家分月排行榜第一2006年11月 C/C++大版内专家分月排行榜第一2006年9月 C/C++大版内专家分月排行榜第一2006年8月 C/C++大版内专家分月排行榜第一2006年7月 C/C++大版内专家分月排行榜第一2006年6月 C/C++大版内专家分月排行榜第一2006年5月 C/C++大版内专家分月排行榜第一2006年4月 C/C++大版内专家分月排行榜第一2006年3月 C/C++大版内专家分月排行榜第一2005年8月 C/C++大版内专家分月排行榜第一
2007年8月 C/C++大版内专家分月排行榜第二2006年10月 C/C++大版内专家分月排行榜第二
2007年7月 C/C++大版内专家分月排行榜第一2007年6月 C/C++大版内专家分月排行榜第一2007年5月 C/C++大版内专家分月排行榜第一2007年4月 C/C++大版内专家分月排行榜第一2007年3月 C/C++大版内专家分月排行榜第一2007年2月 C/C++大版内专家分月排行榜第一2007年1月 C/C++大版内专家分月排行榜第一2006年12月 C/C++大版内专家分月排行榜第一2006年11月 C/C++大版内专家分月排行榜第一2006年9月 C/C++大版内专家分月排行榜第一2006年8月 C/C++大版内专家分月排行榜第一2006年7月 C/C++大版内专家分月排行榜第一2006年6月 C/C++大版内专家分月排行榜第一2006年5月 C/C++大版内专家分月排行榜第一2006年4月 C/C++大版内专家分月排行榜第一2006年3月 C/C++大版内专家分月排行榜第一2005年8月 C/C++大版内专家分月排行榜第一
2007年8月 C/C++大版内专家分月排行榜第二2006年10月 C/C++大版内专家分月排行榜第二
2003年9月 C/C++大版内专家分月排行榜第二2002年6月 C/C++大版内专家分月排行榜第二2002年4月 C/C++大版内专家分月排行榜第二
2007年3月 C/C++大版内专家分月排行榜第三2007年2月 C/C++大版内专家分月排行榜第三2007年1月 C/C++大版内专家分月排行榜第三2003年7月 C/C++大版内专家分月排行榜第三
2009年9月 其他开发语言大版内专家分月排行榜第三2009年2月 其他开发语言大版内专家分月排行榜第三2008年12月 其他开发语言大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。怎样进行综合的逻辑思维
我在【哥德巴赫猜想的终结】这篇诗歌中提出:用哲学家的逻辑思维和数学家的逻辑思维进行新的逻辑思维。原诗是这样写的。
请用数学家们的逻辑思维,&&
再加上哲学家们的逻辑思维,&&
进行一次非常理性的特殊的逻辑思维。&&
那么这就是孙氏的逻辑思维。 &
的确这几年来,我一直使用这种思维方法,从解读道德经,修改道德经第一段的标点符号,到解读整篇道德经,再到解读古诗经,解读论语首篇,大学首篇,理解古慎言人铭文等等,我都陷在了这种思维模式之中。用这种理性的更加全面的逻辑思维,试图解决人类最棘手,最难解决的对于人类真理的认识问题。
那么,数学家的逻辑思维与哲学家的逻辑思维有什么区别呢?在我看来,加减乘除乘方开方等等涵数值,数学家的逻辑思维就是线条型的,就是表现在一条座标轴上,无论是横座标轴,还是纵座标轴。就是纵横座标轴的联合应用,都是座标轴形的逻辑思维。平面的线和点的联系问题。而哲学家的逻辑思维,我认为是立体型的座标体逻辑思维。无论是球体还是方体,甚至更复在的不规则体,像树等植物,人等动物。这些不规则体也要逻辑出规则来。简单说这应该就是哲学家的逻辑思维。
所谓体系的系统化,绝不是一个单线条一个长串的推理演绎,而是像一棵大树,有错综复杂的很多根系,又有牢固粗壮的树干,配以枝干,分支的枝条,叶子,花和果,共同组成这个立体的理论体系。一部分一部分的要有好多个分系组成。这是一个很大的工程,不是我一个人能够完成的,我只是一个扎起这个框架的人。找到了根本之处,和继续下一步工作的方法,要靠能够认识到道德的人们的共同努力才行。
毛泽东说:雄关漫道真如铁,而今迈步从头越。我们俗话也常说:从头开始。从零开始。走到头就归零。等等,不一而足论。这个头,这个零,这个起跑线的准备跑而未跑的一边,与截止绳。音乐上用的休止符,数学上用的绝对值符号。甚至于我们行走的路上的红绿灯下的斑马线。&&这些都表明了这个无中
毛泽东说:雄关漫道真如铁,而今迈步从头越。我们俗话也常说:从头开始。从零开始。走到头就归零。等等,不一而足论。这个头,这个零,这个起跑线的准备跑而未跑的一边,与截止绳。音乐上用的休止符,数学上用的绝对值符号。甚至于我们行走的路上的红绿灯下的斑马线。&&这些都表明了这个无中生有的之处的重要性。这理就是道之结合之中心,而德之基。一阴一阳之谓道,阴阳两道结合之谓德。阴阳和合之德。这种概念就是经商也用得上。买方为阳,卖方为阴,买卖双方的结合久是契约商量,讨价还价,这个过程就是德性化合的过程。一旦成交,就是德化孕育成功了一桩买卖。所以市场的市字,就是一点一横就是得德道为头,巾就是阴隐性的阴阳三合。逻辑组合了一个市场的【市】字。
毛泽东说:一张白纸,没有负担,好写最新最美的文字,好画最新最美的图画。他就是说了这一个无中生有的过程。也就是任何事物的起始都是无,世上本无事。所谓有事,就是无中生而有事。是在事物的运动中无中生有的。就可以说,那个地方如果没有人放哪里一张白纸,那个地方就更加是无。就连写字画画的意念也没有,也是无。所以说任何事物都是无中生有的。
好了,于是我们在这一张白纸上,无中生有的先点上一点,这样这张纸上就有了一点,这个点就是基点,基础之点,是从基地里边点画出来的。它楚楚动人的跃然这张白纸上了。而如果我们一点一点的连续不断的点画下去,就形成了一联串的点,成了一条线,或者说成了一道杠。我们的思维呢也就跟随着点画线的罗列辑录形成而进入了线条型的逻辑思维。再反过来分解开去,就是分解分析,在理论上说就像在数学上这就是加减乘除等等的逻辑思维。也就是线条型座标轴罗辑思维。就像对于物质研究的分子原子粒子理论的应用,甚至粒子对撞机的研究应用都与这个线形罗辑思维分不开。就是正在寻找物质分解到最后是什么?就是寻找这个【无】到底是什么?这个【无】是上帝粒子吗?让我说这就是座标系罗辑思维。就像人类自生产的谱系一样,父传子,子传孙,上边一代代生生不息的传下来,下边再一代代生生不息的传下去。
而对于面的逻辑思维,就是要从无中生有的线开始,连续不断的形成面,普遍的铺开来思维,形成对于面的逻辑思维程序。
而对于这个无中生有的面,再层层叠叠的逻列辑录起来进行整体性的理论思维活动。这就形成了座标体的逻辑思维,立体的逻辑思维。我在解读道德经的过程中发现,道德经就是按这个顺演过程对人类的自生产和人类的社会物质生产活动进行这种综合思维活动并给予了总结的。就是道德经豫则立的过程。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
空间积分0 信誉积分214 UID38574阅读权限30积分1273帖子精华可用积分1273 专家积分0 在线时间159 小时注册时间最后登录
家境小康, 积分 1273, 距离下一级还需 727 积分
帖子主题精华可用积分1273 专家积分0 在线时间159 小时注册时间最后登录
论坛徽章:1
花了点时间写了这么个东西,目前只支持正整数的运算。
还有很多重要的功能,如素性的检测等还没有完成。
增加了负数 --
decnum.h
#include &stdio.h&
#include &math.h&
#include &iostream&
class decnum
{
& & friend decnum pow(const decnum& x, int n);
& & friend decnum root(const decnum& x, int n);
& & friend decnum div(const decnum& x, const decnum& y, decnum& r);
& & friend decnum abs(const decnum& x);
& & friend bool operator==(const decnum& x, const decnum&y);
& & friend bool operator!=(const decnum& x, const decnum&y);
& & friend bool operator&(const decnum& x, const decnum&y);
& & friend bool operator&(const decnum& x, const decnum&y);
& & friend bool operator&=(const decnum& x, const decnum&y);
& & friend bool operator&=(const decnum& x, const decnum&y);
& & friend ostream& operator&&(ostream&os, const decnum& x);
public:
& & decnum() : cap(0), num(0), sign(0), val(NULL) { }
& & decnum(const char *v, int n)
& & {
& && &&&int i,
& && &&&val = new char[n];
& && &&&if(v[0] == '-') {
& && && && &sign = 1;
& && && && &v++;
& && && && &n--;
& && &&&}
& && &&&else {
& && && && &sign = 0;
& && && && &if(v[0] == '+')
& && && && && & v++;
& && &&&}
& && &&&for(i = 0; i & n && v[i] == '0'; i++);
& && &&&for(j=0; i&n; i++, j++)
& && && && &if(v[n-1-i] &= '0' && v[n-1-i] &= '9')
& && && && && & val[j] = v[n-1-i] - '0';
& && && && &else
& && && && && &
& && &&&num =
& && &&&cap =
& & }
& & decnum(const decnum& x)
& & {
& && &&&val = new char[x.num];
& && &&&memcpy(val, x.val, x.num);
& && &&&sign = x.
& && &&&num = x.
& && &&&cap = x.
& & }
& & decnum(int x)
& & {
& && &&&if(x==0) {
& && && && &cap = num = 0;
& && && && &val = NULL;
& && && && &
& && &&&}
& && &&&if(x & 0) {
& && && && &sign = 1;
& && && && &x = -x;
& && &&&}
& && &&&else
& && && && &sign = 0;
& && &&&char temp[20];
& && &&&sprintf(temp, &%d&, x);
& && &&&int n = strlen(temp);
& && &&&num = cap =
& && &&&val = new char[n];
& && &&&for(int i=0; i&n; i++)
& && && && &val[i] = temp[n-1-i] - '0';
& & }
& & decnum(long long x)
& & {
& && &&&if(x==0) {
& && && && &cap = num = 0;
& && && && &val = NULL;
& && && && &
& && &&&}
& && &&&if(x & 0) {
& && && && &sign = 1;
& && && && &x = -x;
& && &&&}
& && &&&else
& && && && &sign = 0;
& && &&&char temp[20];
& && &&&sprintf(temp, &%lld&, x);
& && &&&int n = strlen(temp);
& && &&&num = cap =
& && &&&val = new char[n];
& && &&&for(int i=0; i&n; i++)
& && && && &val[i] = temp[n-1-i] - '0';
& & }
& & ~decnum() { delete[] }
& & int size() const { }
& & decnum&
& & operator=(const decnum& x)
& & {
& && &&&if (this != &x) {
& && && && &if(cap & x.num) {
& && && && && & delete[]
& && && && && & val = new char[x.num];
& && && && && & cap = x.
& && && && &}
& && && && &memcpy(val, x.val, x.num);
& && && && &num = x.
& && && && &sign = x.
& && &&&}
& && &&&return *
& & }
& & decnum&
& & operator=(int x)
& & {
& && &&&*this = decnum(x);
& && &&&return *
& & }
& & decnum&
& & operator=(long long x)
& & {
& && &&&*this = decnum(x);
& && &&&return *
& & }
& & decnum& abs()
& & {
& && &&&sign = 0;
& && &&&return *
& & }
& & decnum& operator+=(const decnum& x);
& & decnum& operator-=(const decnum& x);
& & decnum& operator*=(const decnum& x);
& & decnum& operator/=(const decnum& x);
& & decnum& operator%=(const decnum& x);
& & decnum&&operator+(const decnum& x)
& & decnum&&operator-(const decnum& x)
& & decnum&&operator*(const decnum& x)
& & decnum&&operator/(const decnum& x)
& & decnum&&operator%(const decnum& x)
& & bool ispow(int n, decnum& r)
& & bool ispow()
private:
& & int&&
& & int&&
& & int&&
& & char *
private:
& & char root_1(int n);
& & decnum& absadd(const decnum& x);
& & decnum& abssub(const decnum& x);
& & bool absge(const decnum& x);
};复制代码
decnum.cpp
#include &decnum.h&
decnum&
decnum::absadd(const decnum& x)
{
& & int i,
& & char carry = 0,
& & if(x.num == 0) return *
& & if(num & x.num)
& && &&&max = x.num + 1;
& & else
& && &&&max = num + 1;
& & if(max & cap)
& & {
& && &&&cap =
& && &&&char *newval = new char[cap];
& && &&&memcpy(newval, val, num);
& && &&&memset(newval+num, 0, cap - num);
& && &&&delete[]
& && &&&val =
& & }
& & else
& & {
& && &&&memset(val+num, 0, max - num);
& & }
& & num = max-1;
& & for(i=0; i&x. i++) {
& && &&&ch = val[i] + x.val[i] +
& && &&&if(ch & 9) {
& && && && &carry = 1;
& && && && &val[i] = ch - 10;
& && &&&}
& && &&&else {
& && && && &carry = 0;
& && && && &val[i] =
& && &&&}
& & }
& & for(; i&=num && carry == 1; i++) {
& && &&&ch = val[i] + 1;
& && &&&if(ch & 9) {
& && && && &carry = 1;
& && && && &val[i] = ch - 10;
& && &&&}
& && &&&else {
& && && && &carry = 0;
& && && && &val[i] =
& && &&&}
& & }
& & if(i&num) num =
& & return *
}
decnum&
decnum::abssub(const decnum& x)
{
& & if(x.num == 0) return *
& &
& & char carry = 0,
& & for(i=0; i&x. i++) {
& && &&&ch = val[i] - x.val[i] -
& && &&&if(ch & 0) {
& && && && &carry = 1;
& && && && &val[i] = ch + 10;
& && &&&}
& && &&&else {
& && && && &carry = 0;
& && && && &val[i] =
& && &&&}
& & }
& & for(; i&num && carry == 1; i++) {
& && &&&ch = val[i] - 1;
& && &&&if(ch & 0) {
& && && && &carry = 1;
& && && && &val[i] = ch + 10;
& && &&&}
& && &&&else {
& && && && &carry = 0;
& && && && &val[i] =
& && &&&}
& & }
& & for(i= i&0 && val[i-1] == 0; i--);
& & num =
& & return *
}
bool
decnum::absge(const decnum& x)
{
& & if(num & x.num)
& & if(num & x.num)
& & for(int i=num-1; i &= 0; i--)
& && &&&if(val[i] & x.val[i])
& && && && &
& && &&&else if(val[i] & x.val[i])
& && && && &
& &
}
decnum&
decnum::operator+=(const decnum& x)
{
& & if(x.sign == sign)
& && &&&return absadd(x);
& & else if(absge(x))
& && &&&return abssub(x);
& & else {
& && &&&decnum tmp(*this);
& && &&&*this =
& && &&&return abssub(tmp);
& & }
}
decnum&
decnum::operator-=(const decnum& x)
{
& & if(x.sign != sign)
& && &&&return absadd(x);
& & else if(absge(x))
& && &&&return abssub(x);
& & else {
& && &&&decnum tmp(*this);
& && &&&*this =
& && &&&return abssub(tmp);
& & }
}
decnum&
decnum::operator*=(const decnum& x)
{
& & if(num == 0) return *
& & if(x.num == 0) {
& && &&&num = 0;
& && &&&return *
& & }
& & if(sign == x.sign)
& && &&&sign = 0;
& & else
& && &&&sign = 1;
& & int mul, i, n, newcap,
& & char ch,
& & char *newval = new char[num + x.num];
& & newcap = num + x.
& & memset(newval, 0, num + x.num);
& & decnum a,
& & char *
& & for(i=0; i&num && val[i] == 0; i++);
& & int na =
& & a.val = val +
& & a.num = num -
& & for(i=0; i&num && x.val[i] == 0; i++);
& & int nb =
& & b.val = x.val +
& & b.num = x.num -
& & ptr = newval + na +
& & for(n=0; n &= a.num + b.num - 2; n++) {
& && &&&mul = 0;
& && &&&if(n & b.num - 1)
& && && && &i = n - b.num + 1;
& && &&&else
& && && && &i=0;
& && &&&max = n & a.num-1 ? n : a.num-1;
& && &&&for(; i&= i++)
& && && && &mul += a.val[i]*b.val[n-i];
& && &&&carry = 0;
& && &&&for(i=n; mul & 0 || carry & 0; mul /= 10, i++) {
& && && && &ch = ptr[i] + mul % 10 +
& && && && &if(ch & 9) {
& && && && && & carry = 1;
& && && && && & ptr[i] = ch - 10;
& && && && &}
& && && && &else
& && && && &{
& && && && && & carry = 0;
& && && && && & ptr[i] =
& && && && &}
& && &&&}
& & }
& & for(i=a.num + b. i&0 && ptr[i-1] == 0; i--);
& & num = i + na +
& & if(cap &= num) {
& && &&&memcpy(val, newval, num);
& && &&&delete[]
& & }
& & else {
& && &&&cap =
& && &&&delete[]
& && &&&val =
& & }
& & a.val = b.val = NULL;
& & return *
}
decnum&
decnum::operator/=(const decnum& x)
{
& & char ch, carry,
& &
& &
& & if(x.num == 0) return *
& & if(num & x.num) {
& && &&&num = 0;
& && &&&return *
& & }
& & if(sign == x.sign)
& && &&&sign = 0;
& & else
& && &&&sign = 1;
& & char *newval = new char[num - x.num + 1];
& & memset(newval, 0, num - x.num + 1);
& & carry = 0;
& & fac = x.val[x.num-1] + 1;
& & tmp.val = val + num - x.num + 1;
& & tmp.cap = tmp.num = x.num -1;
& & for(i=num-1; i&= x.num-1; i--) {
& && &&&tmp.val--;
& && &&&tmp.num++;
& && &&&ch = (carry * 10 + val[i]) /
& && &&&tmp&&-= x *
& && &&&while(tmp &= x) {
& && && && &tmp -=
& && && && &ch++;
& && &&&}
& && &&&newval[i-x.num+1] =
& && &&&carry = val[i];
& & }
& & tmp.val = NULL;
& & for(i=num-x.num+1; i&0 && newval[i-1] == 0; i--);
& & num =
& & delete[]
& & val =
& & return *
}
decnum&
decnum::operator%=(const decnum& x)
{
& & char ch, carry,
& &
& &
& & if(x.num == 0) return *
& & if(num & x.num) return *
& & carry = 0;
& & fac = x.val[x.num-1] + 1;
& & tmp.val = val + num - x.num + 1;
& & tmp.num = x.num - 1;
& & for(i=num-1; i&= x.num-1; i--) {
& && &&&tmp.val--;
& && &&&tmp.num++;
& && &&&ch = (carry * 10 + val[i]) /
& && &&&tmp&&-= x *
& && &&&while(tmp &= x) {
& && && && &tmp -=
& && && && &ch++;
& && &&&}
& && &&&carry = val[i];
& & }
& & tmp.val = NULL;
& & num = tmp.
& & return *
}
decnum
decnum::operator+(const decnum& x) const
{
& & decnum tmp = *
& & return tmp +=
}
decnum
decnum::operator-(const decnum& x) const
{
& & decnum tmp = *
& & return tmp -=
}
decnum
decnum::operator*(const decnum& x) const
{
& & decnum tmp = *
& & return tmp *=
}
decnum
decnum::operator/(const decnum& x) const
{
& & decnum tmp = *
& & return tmp /=
}
decnum
decnum::operator%(const decnum& x) const
{
& & decnum tmp = *
& & return tmp %=
}
decnum abs(const decnum& x)
{
& & decnum tmp(x);
& & tmp.sign = 0;
& &
}
decnum pow(const decnum& x, int n)
{
& & decnum tmp(1), fac(x);
& & for(; n&0; n&&=1) {
& && &&&if(n&0x01)
& && && && &tmp *=
& && &&&fac *=
& & }
& &
}
char decnum::root_1(int n)
{
& & char r = (int)(pow(1+val[num-1], 1.0/n) * pow(10,(num-1.0)/n));
& & for(; r&0 && pow(decnum(r), n) & * r--);
& &
}
bool decnum::ispow(int n, decnum& r) const
{
& & if(num == 0) {
& && &&&r.num = 0;
& && &&&
& & }
& & if(sign == 1 && (n&1 == 0)) {
& && &&&r.num = 0;
& && &&&
& & }
& & decnum tmp,
& & r.cap = r.num = (num+n-1) /
& & r.val = new char[r.num];
& & r.sign =
& & memset(r.val, 0, r.num);
& & tmp.val = val + (r.num-1)*n;
& & tmp.num = num - (r.num-1)*n;
& & r.val[r.num-1] = tmp.root_1(n);
& & tmp.val = new char[r.num+1];
& & tmp.cap = r.num+1;
& &
& & p = pow(r, n);
& & if(p == *this)
& & for(int i=r.num-2; i&=0; i--) {
& && &&&memset(tmp.val, 0, i+1);
& && &&&tmp.val[i] = 1;
& && &&&tmp.num = i+1;
& && &&&tmp +=
& && &&&p = (*this - p) / (pow(tmp, n) - p);
& && &&&if(p.num & 1)
& && && && &v = 9;
& && &&&else if(p.num & 0)
& && && && &v = p.val[0];
& && &&&else
& && && && &v = 0;
& && &&&for(; v&=0; v--) {
& && && && &r.val[i] =
& && && && &p = pow(r, n);
& && && && &if(p == *this)
& && && && && &
& && && && &if(p & *this)
& && && && && &
& && &&&}
& & }
& &
}
bool decnum::ispow() const
{
& & decnum r, dec2(&2&, 1);
& & if(ispow(2, r))
& & for(int n=3; r & dec2; n+=2) {
& && &&&if(ispow(n, r))
& & }
& &
}
decnum
root(const decnum& x, int n)
{
& &
& & x.ispow(n, r);
& &
}
decnum
div(const decnum& x, const decnum& y, decnum& r)
{
& & char ch, carry,
& & decnum d = x,
& &
& & if(y.num == 0)
& & if(d.num & y.num) {
& && &&&r =
& && &&&d = 0;
& && &&&
& & }
& & char *newval = new char[d.num - y.num + 1];
& & memset(newval, 0, d.num - y.num + 1);
& & carry = 0;
& & fac = y.val[y.num-1] + 1;
& & tmp.val = d.val + d.num - y.num + 1;
& & tmp.num = y.num - 1;
& & for(i=d.num-1; i&= y.num-1; i--) {
& && &&&tmp.val--;
& && &&&tmp.num++;
& && &&&ch = (carry * 10 + d.val[i]) /
& && &&&tmp&&-= y *
& && &&&while(tmp &= y) {
& && && && &tmp -=
& && && && &ch++;
& && &&&}
& && &&&newval[i-y.num+1] =
& && &&&carry = d.val[i];
& & }
& & r =
& & tmp.val = NULL;
& & for(i=d.num-y.num+1; i&0 && newval[i-1] == 0; i--);
& & d.num =
& & delete[] d.
& & d.val =
& &
}
bool operator==(const decnum& x, const decnum&y)
{
& & if(x.sign != y.sign)
& & if(x.num != y.num)
& & for(int i=0; i & x. i++)
& && &&&if(x.val[i] != y.val[i])
& && && && &
& &
}
bool operator!=(const decnum& x, const decnum&y)
{
& & return !(x==y);
}
bool operator&(const decnum& x, const decnum&y)
{
& & if(x.sign & y.sign)
& & if(x.sign & y.sign)
& & bool retval = (x.sign == 0);
& & if(x.num & y.num)
& & if(x.num & y.num) return !
& & for(int i=x.num-1; i &= 0; i--)
& && &&&if(x.val[i] & y.val[i])
& && && && &
& && &&&else if(x.val[i] & y.val[i])
& && && && &return !
& &
}
bool operator&(const decnum& x, const decnum&y)
{
& & return y &
}
bool operator&=(const decnum& x, const decnum&y)
{
& & if(x.sign & y.sign)
& & if(x.sign & y.sign)
& & bool retval = (x.sign == 0);
& & if(x.num & y.num)
& & if(x.num & y.num) return !
& & for(int i=x.num-1; i &= 0; i--)
& && &&&if(x.val[i] & y.val[i])
& && && && &
& && &&&else if(x.val[i] & y.val[i])
& && && && &return !
& &
}
bool operator&=(const decnum& x, const decnum&y)
{
& & return y &=
}
ostream& operator&&(ostream&os, const decnum& x)
{
& & if(x.size() == 0)
& && &&&os && 0;
& & else {
& && &&&if(x.sign == 1)
& && && && &os && &-&;
& && &&&for(int i = x.size()-1; i&=0; i--)
& && && && &os && (int)x.val[i];
& & }
& &
}复制代码
[ 本帖最后由 yuxh 于
18:11 编辑 ]
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
空间积分0 信誉积分2815 UID45332阅读权限100积分81518帖子精华可用积分81532 专家积分1309 在线时间15106 小时注册时间最后登录
帖子主题精华可用积分81532 专家积分1309 在线时间15106 小时注册时间最后登录
论坛徽章:1
传说中的沙发?
空间积分0 信誉积分109 UID阅读权限20积分338帖子精华可用积分338 专家积分0 在线时间2 小时注册时间最后登录
稍有积蓄, 积分 338, 距离下一级还需 162 积分
帖子主题精华可用积分338 专家积分0 在线时间2 小时注册时间最后登录
论坛徽章:0
8错, 对我搞科学计算有用, 测试过效率么?
空间积分0 信誉积分109 UID阅读权限20积分338帖子精华可用积分338 专家积分0 在线时间2 小时注册时间最后登录
稍有积蓄, 积分 338, 距离下一级还需 162 积分
帖子主题精华可用积分338 专家积分0 在线时间2 小时注册时间最后登录
论坛徽章:0
最好再加上超高精度的浮点数的混合运算支持
空间积分0 信誉积分214 UID38574阅读权限30积分1273帖子精华可用积分1273 专家积分0 在线时间159 小时注册时间最后登录
家境小康, 积分 1273, 距离下一级还需 727 积分
帖子主题精华可用积分1273 专家积分0 在线时间159 小时注册时间最后登录
论坛徽章:1
这个本来是为大素数的测试用的,这些是要用到的基本运算
可惜我的工作与加密算法无关,纯粹是业余爱好,代码也是业余水平的。
就效率而言,比较慢的就是求n次方根这个了:
root(x, n)
设x有m位,则算法应该是O(m^3*log(m)/n)的
检测一个数是否是某个数的整数次幂:
这个就差不多是O(m^3*log(m)^2)的了
[ 本帖最后由 yuxh 于
11:17 编辑 ]
空间积分0 信誉积分100 UID阅读权限20积分501帖子精华可用积分501 专家积分0 在线时间0 小时注册时间最后登录
稍有积蓄, 积分 501, 距离下一级还需 -1 积分
帖子主题精华可用积分501 专家积分0 在线时间0 小时注册时间最后登录
论坛徽章:0
生活日志:
http://monnand.linuxsky.net
技术文章:
http://blog.csdn.net/monnand/
联系方式:
E-mail:.cn
空间积分0 信誉积分0 UID阅读权限30积分1135帖子精华可用积分1133 专家积分0 在线时间165 小时注册时间最后登录
家境小康, 积分 1135, 距离下一级还需 865 积分
帖子主题精华可用积分1133 专家积分0 在线时间165 小时注册时间最后登录
论坛徽章:0
空间积分802 信誉积分1041 UID阅读权限90积分12388帖子精华可用积分12390 专家积分0 在线时间2971 小时注册时间最后登录
大富大贵, 积分 12388, 距离下一级还需 7612 积分
帖子主题精华可用积分12390 专家积分0 在线时间2971 小时注册时间最后登录
论坛徽章:2
接口为10进制, 内部的进制采用unsigned long或unsigned short,是不是更能借助逻辑运算,提高效率?
空间积分0 信誉积分100 UID661604阅读权限10积分31帖子精华可用积分31 专家积分0 在线时间3 小时注册时间最后登录
白手起家, 积分 31, 距离下一级还需 169 积分
帖子主题精华可用积分31 专家积分0 在线时间3 小时注册时间最后登录
论坛徽章:0
回复 1楼 yuxh 的帖子
来凑凑热闹
/***************************************************************************
& && && && && && && && &&&decimal.h&&-&&description
& && && && && && && && && &&&-------------------
& & begin& && && && && & : Wed Jan 9 2002
& & copyright& && && && &: (C) 2002 by Xian Yining
& & email& && && && && & :
***************************************************************************/
/***************************************************************************
*& && && && && && && && && && && && && && && && && && && && && && && && & *
*& &This prog you can redistribute it and/or modify&&*
*& &it under the terms of the GNU General Public License as published by&&*
*& &the Free Software F either version 2 of the License, or& &&&*
*& &(at your option) any later version.& && && && && && && && && && && &&&*
*& && && && && && && && && && && && && && && && && && && && && && && && & *
***************************************************************************/
#ifndef DECIMAL_H
#define DECIMAL_H
#ifndef __USE_GNU
#define __USE_GNU
#ifndef __USE_ISOC99
#define __USE_ISOC99
#include &typeinfo&
#include &iostream&
#include &string&
#include &limits&
const unsigned DECIMAL_DEFAULT_PRE = 20,DECIMAL_DEFAULT_DEC = 6;
class decimal
& & & & enum Sign {PLUS=1,MINUS=-1};
& & & & enum Stat {NOINIT=-1,OK,UPFLOW,DOWNFLOW,OVERDIGITS};
& & & & enum Pre&&{DOUBLE_PRECISION=std::numeric_limits&double&::digits10,LDOUBLE_PRECISION=std::numeric_limits&long double&::digits10};
& & & & //构造函数
& & & & decimal(void):sn(PLUS),val(&0&quot,exp(0),st(OK),pre(DECIMAL_DEFAULT_PRE),dec(DECIMAL_DEFAULT_DEC) {}
& & & & decimal(const std::string &,const unsigned int p=DECIMAL_DEFAULT_PRE,const unsigned int d=DECIMAL_DEFAULT_DEC) ;
& & & & decimal(const char* cstr,const unsigned int p=DECIMAL_DEFAULT_PRE,const unsigned int d=DECIMAL_DEFAULT_DEC) ;
& & & & decimal(const int,const unsigned int p=DECIMAL_DEFAULT_PRE,const unsigned int d=DECIMAL_DEFAULT_DEC) ;
& & & & decimal(const unsigned int,const unsigned int p=DECIMAL_DEFAULT_PRE,const unsigned int d=DECIMAL_DEFAULT_DEC) ;
& & & & decimal(const long,const unsigned int p=DECIMAL_DEFAULT_PRE,const unsigned int d=DECIMAL_DEFAULT_DEC) ;
& & & & decimal(const long long,const unsigned int p=DECIMAL_DEFAULT_PRE,const unsigned int d=DECIMAL_DEFAULT_DEC) ;
& & & & decimal(const unsigned long,const unsigned int p=DECIMAL_DEFAULT_PRE,const unsigned int d=DECIMAL_DEFAULT_DEC) ;
& & & & decimal(const unsigned long long,const unsigned int p=DECIMAL_DEFAULT_PRE,const unsigned int d=DECIMAL_DEFAULT_DEC) ;
& & & & decimal(const double,const unsigned int p=DECIMAL_DEFAULT_PRE,const unsigned int d=DECIMAL_DEFAULT_DEC) ;
& & & & decimal(const long double,const unsigned int p=DECIMAL_DEFAULT_PRE,const unsigned int d=DECIMAL_DEFAULT_DEC) ;
& & & & decimal(const decimal& d):sn(d.sn),val(d.val),exp(d.exp),st(d.st),pre(d.pre),dec(d.dec) {}
& & & & virtual ~decimal(){}
& & & & //赋值
& & & & decimal& operator=(const decimal&
& & & & //算术运算
& & & & decimal& operator +=(const decimal&
& & & & decimal& operator -=(const decimal&
& & & & decimal& operator *=(const decimal&
& & & & decimal& operator /=(const decimal&
//& & & & decimal& operator %=(const decimal&
& & & & //比较运算符
& & & & bool le(const decimal&amp
& & & & bool eq(const decimal&amp
& & & & bool gt(const decimal&amp
& & & & decimal& operator-(void) {sn=((sn==PLUS)?MINUSLUS);return *}
& & & & decimal& operator+(void) {return *}
& & & & //杂项函数
& & & & virtual std::string toString()
& & & & virtual std::string toShortStr()
& & & & virtual std::string toString(const unsigned int len,const int de)
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & //在len长度内转为十进小数字符串,超常则返回‘*’串
& & & & virtual std::string toEString(const unsigned int len=0)& & & & //在len长度内转为科学表示法字符串,超常则返回‘*’串
& & & & bool ok() const {return (st==OK)?true:}& & & & & & & & //数字是否有效
& & & & bool zero() const {return (val==&0&)?true:}& & & & //数字是否为0
& & & & virtual decimal& round(int r) ;
& & & & virtual decimal& round() ;& & & & //按dec指定的位数四舍五入
& & & & Sign getSn() const {}
& & & & const std::string &getVal() const {}
& & & & int getExp() const {}
& & & & Stat getSt() const {}
& & & & unsigned getPre() const {}
& & & & unsigned getDec() const {}
/****************
*& &内部子程序& &*
****************/
protected :
& & & & decimal& decReg() ;
& & & & decimal& decAdd(const decimal&);
& & & & decimal& decSub(const decimal&);
& & & & decimal& decMulti(const decimal&) ;
& & & & decimal& decDiv(const decimal&);
& & & & void valDiv(std::string& s1,const std::string& s2,const unsigned len) ;
& & & & char valMult(std::string& s1,const std::string& s2) ;
& & & & void valAdd(std::string& s1,int &p1,const std::string& s2,int p2) ;
& & & & int valSub(std::string& s1,int &e1,const std::string& s2,const int e2);
& & & & int digitAdd(char& c1,const char c2,const int car=0) ;
& & & & int digitSub(char& c1,const char c2,const int b=0) ;
& & & & char digitMult(char& c1,const char c2,const char m) ;
& & & & int valCmp(const std::string& s1,const int e1,const std::string& s2,const int e2)
& & & & void setSn(Sign s) {sn=s;}
& & & & void setVal(const std::string &s) {val=s;}
& & & & void setExp(int i) {exp=i;}
& & & & void setSt(Stat s) {st=s;}
& & & & void setPre(unsigned u) {pre=u;}
& & & & void setDec(unsigned u) {dec=u;}
& & & & Sign& & & & & & & && & & & //符号
& & & & std::string& & & && & & & //有效尾数
& & & & int & & & & & & & && & & & //小数点位置(指数)
& & & & //以下为辅助参数
& & & & Stat& & & & & & & && & & & //状态
& & & & unsigned int& & & && & & & //精度(最大有效数字位数)
& & & & unsigned int& & & && & & & //保留小数位数
/*******************
*& &协作函数& && & *
*******************/
decimal round(const decimal& ,const int) ;
//算术运算
decimal operator +(const decimal&,const decimal&) ;
decimal operator -(const decimal&,const decimal&) ;
decimal operator *(const decimal&,const decimal&) ;
decimal operator /(const decimal&,const decimal&) ;
//& & & & friend decimal& operator %(const decimal&,const decimal&) ;
//比较运算符
bool operator&&&(const decimal&,const decimal&) ;
bool operator &=(const decimal&,const decimal&) ;
bool operator ==(const decimal&,const decimal&) ;
bool operator &=(const decimal&,const decimal&) ;
bool operator&&&(const decimal&,const decimal&) ;
bool operator !=(const decimal&,const decimal&) ;
std:stream& operator &&(std:stream&,const decimal&) ;
//unsigned int midDigits(const decimal& ,const decimal& ) ;
#endif //DECIMAL_H
[ 本帖最后由 hqxyn 于
19:54 编辑 ]
空间积分0 信誉积分100 UID661604阅读权限10积分31帖子精华可用积分31 专家积分0 在线时间3 小时注册时间最后登录
白手起家, 积分 31, 距离下一级还需 169 积分
帖子主题精华可用积分31 专家积分0 在线时间3 小时注册时间最后登录
论坛徽章:0
回复 9楼 hqxyn 的帖子
/***************************************************************************
& && && && && && && && &&&decimal.cpp&&-&&description
& && && && && && && && && &&&-------------------
& & begin& && && && && & : Wed Jan 9 2002
& & copyright& && && && &: (C) 2002 by Xian Yining
& & email& && && && && & :
***************************************************************************/
/***************************************************************************
*& && && && && && && && && && && && && && && && && && && && && && && && & *
*& &This prog you can redistribute it and/or modify&&*
*& &it under the terms of the GNU General Public License as published by&&*
*& &the Free Software F either version 2 of the License, or& &&&*
*& &(at your option) any later version.& && && && && && && && && && && &&&*
*& && && && && && && && && && && && && && && && && && && && && && && && & *
***************************************************************************/
#ifndef _MONEY_H
#define _MONEY_H
#include &decimal.h&
const int MONEY_DEFAULT_DEC = 2;
class money : public decimal {
money():decimal(0,DECIMAL_DEFAULT_PRE,MONEY_DEFAULT_DEC) {};
money(const char* cstr,const unsigned int p=DECIMAL_DEFAULT_PRE)
& & & & & & & & :decimal(cstr,p,MONEY_DEFAULT_DEC) {round();} ;
money(const int i,const unsigned int p=DECIMAL_DEFAULT_PRE)
& & & & & & & & :decimal(i,p,MONEY_DEFAULT_DEC){round();} ;
money(const unsigned int ui,const unsigned int p=DECIMAL_DEFAULT_PRE)
& & & & & & & & :decimal(ui,p,MONEY_DEFAULT_DEC){round();} ;
money(const long l,const unsigned int p=DECIMAL_DEFAULT_PRE)
& & & & & & & & :decimal(l,p,MONEY_DEFAULT_DEC){round();} ;
money(const long long ll,const unsigned int p=DECIMAL_DEFAULT_PRE)
& & & & & & & & :decimal(ll,p,MONEY_DEFAULT_DEC){round();} ;
money(const unsigned long ul,const unsigned int p=DECIMAL_DEFAULT_PRE)
& & & & & & & & :decimal(ul,p,MONEY_DEFAULT_DEC){round();} ;
money(const unsigned long long ull,const unsigned int p=DECIMAL_DEFAULT_PRE)
& & & & & & & & :decimal(ull,p,MONEY_DEFAULT_DEC){round();} ;
money(const double db,const unsigned int p=DECIMAL_DEFAULT_PRE)
& & & & & & & & :decimal(db,p,MONEY_DEFAULT_DEC){round();} ;
money(const long double ld,const unsigned int p=DECIMAL_DEFAULT_PRE)
& & & & & & & & :decimal(ld,p,MONEY_DEFAULT_DEC){round();} ;
money(const decimal& d)
& & & & & & & & :decimal(0,d.getPre(),MONEY_DEFAULT_DEC) {
& & & & & & & & setSn(d.getSn());
& & & & & & & & setVal(d.getVal());
& & & & & & & & setExp(d.getExp());
& & & & & & & & round();}
//赋值d.toEString().c_str()
money& operator=(const decimal& d) {
& & & & //精度定义(pre)和保留小数位数(dec)在变量定义时确定,?新值时不变。
& & & & setSn(d.getSn());
& & & & setVal(d.getVal());
& & & & setExp(d.getExp());
& & & & if (getVal().size()&getPre()) {setSt(OVERDIGITS);}
& & & & else setSt(d.getSt());
& & & & round();
& & & & return *
#endif //_MONEY_H
[ 本帖最后由 hqxyn 于
10:38 编辑 ]
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处
说的太好了,我顶!
Copyright & 2014
Corporation, All Rights Reserved
Processed in 0.0059 second(s), 3 db_queries,
0 rpc_queries

我要回帖

更多关于 大连民族学院怎么样 的文章

 

随机推荐